[or-cvs] [torbrowser/master] lock down firefox a bit more, bump tbb versions for pending release, and change Makefile names for easier usage

erinn at torproject.org erinn at torproject.org
Sat Jan 1 19:38:55 UTC 2011


Author: Erinn Clark <erinn at torproject.org>
Date: Sat, 1 Jan 2011 20:37:51 +0100
Subject: lock down firefox a bit more, bump tbb versions for pending release, and change Makefile names for easier usage
Commit: 4f7ea26a9f48d6ee9c66d13ae16af00bf74fd313

---
 build-scripts/Makefile            |    2 +-
 build-scripts/Makefile.linux      |  525 ------------------------------------
 build-scripts/Makefile.osx        |  528 -------------------------------------
 build-scripts/config/no-polipo.js |    3 +
 build-scripts/config/prefs.js     |    3 +
 build-scripts/linux.mk            |  525 ++++++++++++++++++++++++++++++++++++
 build-scripts/osx.mk              |  527 ++++++++++++++++++++++++++++++++++++
 7 files changed, 1059 insertions(+), 1054 deletions(-)
 delete mode 100644 build-scripts/Makefile.linux
 delete mode 100644 build-scripts/Makefile.osx
 create mode 100644 build-scripts/linux.mk
 create mode 100644 build-scripts/osx.mk

diff --git a/build-scripts/Makefile b/build-scripts/Makefile
index 27215f3..82abf89 100644
--- a/build-scripts/Makefile
+++ b/build-scripts/Makefile
@@ -49,7 +49,7 @@ DEST="Generic Bundle"
 NAME="Tor Browser"
 
 ## Version and name of the compressed bundle (also used for source)
-VERSION=1.3.15
+VERSION=1.3.16
 DEFAULT_COMPRESSED_BASENAME=tor-browser-
 IM_COMPRESSED_BASENAME=tor-im-browser-
 DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME)$(VERSION)
diff --git a/build-scripts/Makefile.linux b/build-scripts/Makefile.linux
deleted file mode 100644
index f2995e6..0000000
--- a/build-scripts/Makefile.linux
+++ /dev/null
@@ -1,525 +0,0 @@
-###
-### Makefile for building Tor USB bundle on Gnu/Linux
-###
-### Copyright 2007 Steven J. Murdoch <http://www.cl.cam.ac.uk/users/sjm217/>
-### Copyright 2009 Jacob Appelbaum <jacob at appelbaum.net>
-### Copyright 2010 Erinn Clark <erinn at torproject.org>
-###
-### You want to do the following currently supported activities:
-# This downloads and compiles everything
-### make -f Makefile.linux build-all-binaries
-# This makes a generic bundle
-### make -f Makefile.linux generic-bundle
-# This makes the English bundle
-### make -f Makefile.linux bundle_en-US
-# This makes the German bundle
-### make -f Makefile.linux bundle_de
-# This makes the German compressed bundle
-### make -f Makefile.linux compressed-bundle_de 
-# It's possible you may also want to do:
-### make -f Makefile.linux build-all-binaries
-### make -f Makefile.linux all-compressed-bundles
-### ...
-### Look in tbbl-dist/ for your files.
-###
-### See LICENSE for licensing information
-###
-### $Id: Makefile 19973 2009-07-12 02:26:03Z phobos $
-###
-
-#####################
-### Configuration ###
-#####################
-
-## Architecture
-ARCH_TYPE=$(shell uname -m)
-
-## Location of directory for source unpacking
-FETCH_DIR=/build
-## Location of directory for prefix/destdir/compiles/etc
-BUILT_DIR=$(FETCH_DIR)/built
-TBB_FINAL=$(BUILT_DIR)/TBBL
-
-## Versions for our source packages
-HTTPSEVERY_VER=0.9.9.development.2
-FIREFOX_VER=3.6.13
-LIBEVENT_VER=1.4.13-stable
-LIBPNG_VER=1.4.3
-NOSCRIPT_VER=2.0.7
-OPENSSL_VER=0.9.8p
-OTR_VER=3.2.0
-PIDGIN_VER=2.6.4
-POLIPO_VER=1.0.4.1
-QT_VER=4.6.2
-TOR_VER=0.2.2.20-alpha
-TORBUTTON_VER=1.2.5
-VIDALIA_VER=0.2.10
-ZLIB_VER=1.2.3
-
-## Extension IDs
-FF_VENDOR_ID:=\{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
-
-## File names for the source packages
-FIREFOX_PACKAGE=firefox-$(FIREFOX_VER).source.tar.bz2
-LIBEVENT_PACKAGE=libevent-$(LIBEVENT_VER).tar.gz
-LIBPNG_PACKAGE=libpng-$(LIBPNG_VER).tar.gz
-OPENSSL_PACKAGE=openssl-$(OPENSSL_VER).tar.gz
-PIDGIN_PACKAGE=pidgin-$(PIDGIN_VER).tar.bz2
-POLIPO_PACKAGE=polipo-$(POLIPO_VER).tar.gz
-QT_PACKAGE=qt-everywhere-opensource-src-$(QT_VER).tar.gz
-TOR_PACKAGE=tor-$(TOR_VER).tar.gz
-VIDALIA_PACKAGE=vidalia-$(VIDALIA_VER).tar.gz
-ZLIB_PACKAGE=zlib-$(ZLIB_VER).tar.gz
-
-## Location of files for download
-FIREFOX_URL=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/source/$(FIREFOX_PACKAGE)
-LIBEVENT_URL=http://www.monkey.org/~provos/$(LIBEVENT_PACKAGE)
-LIBPNG_URL=http://download.sourceforge.net/libpng/$(LIBPNG_PACKAGE).tar.gz
-OPENSSL_URL=https://www.openssl.org/source/$(OPENSSL_PACKAGE)
-PIDGIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/$(PIDGIN_PACKAGE)
-POLIPO_URL=http://freehaven.net/~chrisd/polipo/$(POLIPO_PACKAGE)
-QT_URL=ftp://ftp.qt.nokia.com/qt/source/$(QT_PACKAGE)
-TOR_URL=https://www.torproject.org/dist/$(TOR_PACKAGE)
-VIDALIA_URL=https://www.torproject.org/vidalia/dist/$(VIDALIA_PACKAGE)
-ZLIB_URL=http://www.gzip.org/zlib/$(ZLIB_PACKAGE)
-
-fetch-source:
-	-mkdir $(FETCH_DIR)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(ZLIB_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(OPENSSL_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(QT_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(VIDALIA_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(LIBEVENT_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(TOR_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(POLIPO_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(PIDGIN_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(FIREFOX_URL)
-
-unpack-source:
-	cd $(FETCH_DIR) && tar -xvzf $(ZLIB_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(OPENSSL_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(QT_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(VIDALIA_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(LIBEVENT_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(TOR_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(POLIPO_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvjf $(FIREFOX_PACKAGE)
-
-source-dance: fetch-source unpack-source
-	echo "We're ready for building now."
-
-ZLIB_DIR=$(FETCH_DIR)/zlib-$(ZLIB_VER)
-ZLIB_OPTS=--shared --prefix=$(BUILT_DIR)
-build-zlib:
-	cd $(ZLIB_DIR) && ./configure $(ZLIB_OPTS)
-	cd $(ZLIB_DIR) && make
-	cd $(ZLIB_DIR) && make install
-
-OPENSSL_DIR=$(FETCH_DIR)/openssl-$(OPENSSL_VER)
-OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -I$(BUILT_DIR)/include -L$(BUILT_DIR)/lib
-CFLAGS=-Wa, --noexecstack
-build-openssl:
-	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack ./config $(OPENSSL_OPTS)
-	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack make depend
-	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack make
-	cd $(OPENSSL_DIR) && make install
-
-QT_DIR=$(FETCH_DIR)/qt-everywhere-opensource-src-$(QT_VER)
-QT_BUILD_PREFS=-system-zlib -confirm-license -opensource -openssl-linked -no-qt3support -fast -release -nomake demos -nomake examples
-QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L$(BUILT_DIR)/lib
-build-qt:
-	cd $(QT_DIR) && ./configure $(QT_OPTS)
-	cd $(QT_DIR) && make
-	cd $(QT_DIR) && make install
-
-VIDALIA_DIR=$(FETCH_DIR)/vidalia-$(VIDALIA_VER)
-VIDALIA_OPTS=-DOPENSSL_LIBRARY_DIR=$(BUILT_DIR)/lib -DCMAKE_BUILD_TYPE=debug -DQT_QMAKE_EXECUTABLE=$(BUILT_DIR)/bin/qmake ..
-build-vidalia:
-	-mkdir $(VIDALIA_DIR)/build
-	cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) && make
-	cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install
-
-LIBEVENT_DIR=$(FETCH_DIR)/libevent-$(LIBEVENT_VER)
-LIBEVENT_OPTS=--prefix=$(BUILT_DIR)
-build-libevent:
-	cd $(LIBEVENT_DIR) && ./configure $(LIBEVENT_OPTS)
-	cd $(LIBEVENT_DIR) && make -j2
-	cd $(LIBEVENT_DIR) && make install
-
-LIBPNG_DIR=$(FETCH_DIR)/libpng-$(LIBPNG_VER)
-LIBPNG_OPTS=--prefix=$(BUILT_DIR)
-build-libpng:
-	cd $(LIBPNG_DIR) && ./configure $(LIBPNG_OPTS)
-	cd $(LIBPNG_DIR) && make
-	cd $(LIBPNG_DIR) && make install
-
-TOR_DIR=$(FETCH_DIR)/tor-$(TOR_VER)
-TOR_OPTS=--with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR)
-build-tor:
-	cd $(TOR_DIR) && ./configure $(TOR_OPTS)
-	cd $(TOR_DIR) && make -j2
-	cd $(TOR_DIR) && make install
-
-## Polipo doesn't use autoconf, so we just have to hack their Makefile
-## This probably needs to be updated if Polipo ever updates their Makefile
-POLIPO_DIR=$(FETCH_DIR)/polipo-$(POLIPO_VER)
-POLIPO_MAKEFILE=$(CONFIG_SRC)/polipo-Makefile
-build-polipo:
-	cp $(POLIPO_MAKEFILE) $(POLIPO_DIR)/Makefile
-	cd $(POLIPO_DIR) && make && PREFIX=$(FETCH_DIR)/built/ make install.binary
-
-build-pidgin:
-	echo "We're not building pidgin yet!"
-
-build-firefox:
-	# XXX: add directions ASAP
-
-# source-dance unpack-source
-build-all-binaries: build-zlib build-openssl build-libpng build-qt build-vidalia build-libevent build-tor build-polipo
-	echo "If we're here, we've done something right."
-
-## Location of compiled libraries
-COMPILED_LIBS=$(BUILT_DIR)/lib
-## Location of compiled binaries
-COMPILED_BINS=$(BUILT_DIR)/bin/
-
-## Location of the libraries we've built
-LIBEVENT=$(COMPILED_LIBS)
-LIBPNG=$(COMPILED_LIBS)
-OPENSSL=$(COMPILED_LIBS)
-QT=$(COMPILED_LIBS)
-ZLIB=$(COMPILED_LIBS)
-
-## Location of binary bundle components
-POLIPO=$(COMPILED_BINS)/polipo
-TOR=$(COMPILED_BINS)/tor
-VIDALIA=$(BUILT_DIR)/usr/local/bin/vidalia
-## Someday, this will be our custom Firefox
-FIREFOX=$(FETCH_DIR)/Firefox
-PIDGIN=$(COMPILED_BINS)/pidgin
-
-## Location of utility applications
-WGET:=$(shell which wget)
-
-## Size of split archive volumes for WinRAR
-SPLITSIZE=1440k
-
-## Location of config files
-CONFIG_SRC=config
-
-## Destination for the generic bundle
-DEST=generic-bundle
-
-## Name of the bundle
-NAME=tor-browser
-
-## Where shall we put the finished files for distribution?
-DISTDIR=tbbl-dist
-
-## Version and name of the compressed bundle (also used for source)
-VERSION=1.1.1-dev
-DEFAULT_COMPRESSED_BASENAME=tor-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)
-
-ifeq ($(USE_PIDGIN),1)
-COMPRESSED_NAME=$(IM_COMPRESSED_NAME)
-else
-COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME)
-endif
-
-## Extensions to install by default
-DEFAULT_EXTENSIONS=torbutton.xpi noscript.xpi httpseverywhere.xpi
-
-## Where to download Torbutton from
-TORBUTTON=https://www.torproject.org/torbutton/releases/torbutton-$(TORBUTTON_VER).xpi
-NOSCRIPT=https://secure.informaction.com/download/releases/noscript-$(NOSCRIPT_VER).xpi
-BETTERPRIVACY=https://addons.mozilla.org/en-US/firefox/downloads/latest/6623/addon-6623-latest.xpi
-HTTPSEVERYWHERE=https://eff.org/files/https-everywhere-$(HTTPSEVERY_VER).xpi
-## Where to download Mozilla language packs
-MOZILLA_LANGUAGE=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/linux-i686/xpi
-
-## Put more extensions here
-EXTENSIONS_DIR=extensions
-
-## Local overrides
--include local.makefile
-
-#############
-### Rules ###
-#############
-
-##
-## Default rule
-##
-
-#bundle: bundle_en-US
-bundle: bundle_en-US
-
-all-bundles-both:
-	USE_PIDGIN=1 make -f Makefile.linux all-bundles
-	make -f Makefile.linux clean
-	USE_PIDGIN=0 make -f Makefile.linux all-bundles
-	make -f Makefile.linux clean
-
-all-bundles: all-compressed-bundles
-
-all-compressed-bundles: compressed-bundle_ar \
-	compressed-bundle_de \
-	compressed-bundle_en-US \
-	compressed-bundle_es-ES \
-	compressed-bundle_fa \
-	compressed-bundle_fr \
-	compressed-bundle_nl \
-	compressed-bundle_pl \
-	compressed-bundle_pt-PT \
-	compressed-bundle_ru \
-	compressed-bundle_zh-CN \
-	compressed-bundle_it \
-	compressed-bundle_vi
-
-##
-## Cleanup
-##
-
-clean:
-	rm -fr $(DISTDIR)
-	rm -fr *.tar.gz
-	rm -fr $(DEST) *.stamp
-	rm -f *~
-	rm -fr *.xpi *.jar *.zip
-	rm -fr $(NAME)_*
-	cd ../src/RelativeLink/ && $(MAKE) clean
-
-##
-## Generate a non-localized bundle and put in $(DEST)
-##
-
-## Install binaries, documentation, FirefoxPortable, PidginPortable, and launcher into $(DEST)
-generic-bundle.stamp:
-	make -f Makefile.linux generic-bundle
-generic-bundle: directory-structure install-binaries install-docs install-firefox install-pidgin configure-apps launcher strip-it-stripper
-	touch generic-bundle.stamp
-
-APPDIR=$(DEST)/App
-LIBSDIR=$(DEST)/Lib
-DOCSDIR=$(DEST)/Docs
-DATADIR=$(DEST)/Data
-TB_TMPDIR=$(DEST)/tmp
-
-## Build directory structure
-directory-structure: 
-	rm -fr $(DEST)
-	mkdir -p $(APPDIR)
-	mkdir -p $(LIBSDIR)
-	mkdir -p $(LIBSDIR)/libz
-	mkdir -p $(DATADIR)/Tor
-	mkdir -p $(DATADIR)/Vidalia
-	#mkdir -p $(DATADIR)/Polipo
-	mkdir -p $(DATADIR)/profile
-	mkdir -p $(DOCSDIR)
-	mkdir -p $(TB_TMPDIR)
-
-## Package up all the Vidalia and Tor pre-requisites
-## Firefox and Pidgin are installed in their own targets
-install-binaries:
-	# A minimal set of Qt libs and the proper symlinks
-	cp -d $(QT)/libQtCore.so $(QT)/libQtCore.so.4 $(QT)/libQtCore.so.4.6 $(QT)/libQtCore.so.4.6.2 $(LIBSDIR)
-	cp -d $(QT)/libQtGui.so $(QT)/libQtGui.so.4 $(QT)/libQtGui.so.4.6 $(QT)/libQtGui.so.4.6.2 $(LIBSDIR)
-	cp -d $(QT)/libQtNetwork.so $(QT)/libQtNetwork.so.4 $(QT)/libQtNetwork.so.4.6 \
-           $(QT)/libQtNetwork.so.4.6.2 $(LIBSDIR)
-	cp -d $(QT)/libQtXml.so $(QT)/libQtXml.so.4 $(QT)/libQtXml.so.4.6 $(QT)/libQtXml.so.4.6.2 $(LIBSDIR)
-	# zlib
-	cp -d $(ZLIB)/libz.so $(ZLIB)/libz.so.1 $(ZLIB)/libz.so.1.2.3 $(LIBSDIR)/libz
-	# Libevent
-	cp -d $(LIBEVENT)/libevent-1.4.so.2 $(LIBEVENT)/libevent-1.4.so.2.1.3 $(LIBEVENT)/libevent_core.so \
-           $(LIBEVENT)/libevent_core-1.4.so.2 $(LIBEVENT)/libevent_core-1.4.so.2.1.3 \
-           $(LIBEVENT)/libevent_extra-1.4.so.2 $(LIBEVENT)/libevent_extra-1.4.so.2.1.3 \
-           $(LIBEVENT)/libevent_extra.so $(LIBEVENT)/libevent.so $(LIBSDIR)
-	# libpng
-	cp -d $(LIBPNG)/libpng14.so* $(LIBSDIR) 
-	# OpenSSL
-	cp -d $(OPENSSL)/libcrypto.a $(OPENSSL)/libssl.a $(OPENSSL)/libssl.so* $(OPENSSL)/libcrypto.so* $(LIBSDIR)
-	# Vidalia
-	cp $(VIDALIA) $(APPDIR)
-	# Polipo
-	#cp $(POLIPO) $(APPDIR)
-	# Tor (perhaps we want tor-resolve too?)
-	cp $(TOR) $(APPDIR)
-
-## Fixup
-## Collect up license files
-install-docs:
-	mkdir -p $(DOCSDIR)/Vidalia
-	mkdir -p $(DOCSDIR)/Tor
-	mkdir -p $(DOCSDIR)/Qt
-	#mkdir -p $(DOCSDIR)/Polipo
-	cp $(VIDALIA_DIR)/LICENSE* $(VIDALIA_DIR)/CREDITS $(DOCSDIR)/Vidalia
-	cp $(TOR_DIR)/LICENSE $(TOR_DIR)/README $(DOCSDIR)/Tor
-	cp $(QT_DIR)/LICENSE.GPL* $(QT_DIR)/LICENSE.LGPL $(DOCSDIR)/Qt
-	#cp $(POLIPO_DIR)/COPYING  $(POLIPO_DIR)/README $(DOCSDIR)/Polipo
-	# This should be updated to be more generic (version-wise) and more Linux specific
-	cp ../README.Linux $(DOCSDIR)/README-TorBrowserBundle
-
-## Copy over Firefox
-install-firefox:
-	cp -R $(FIREFOX) $(APPDIR)
-	# Due to various issues with a broken libxml2, we'll remove these...
-	rm -f $(APPDIR)/Firefox/components/libnkgnomevfs.so
-	rm -f $(APPDIR)/Firefox/components/libmozgnome.so
-
-## Copy over Pidgin
-install-pidgin:
-ifeq ($(USE_PIDGIN),1)
-	cp -R $(PIDGIN) $(APPDIR)
-endif
-
-## Configure Firefox, Vidalia, Polipo and Tor
-configure-apps:
-	## Configure Firefox preferences
-	#mkdir -p $(DEST)/.mozilla/Firefox/firefox.default
-	cp -R $(CONFIG_SRC)/firefox-profiles.ini $(DEST)/Data/profiles.ini
-	cp $(CONFIG_SRC)/bookmarks.html $(DEST)/Data/profile
-	cp $(CONFIG_SRC)/no-polipo.js $(DEST)/Data/profile/prefs.js
-	## Configure Pidgin
-ifeq ($(USE_PIDGIN),1)
-	mkdir -p $(DEST)/PidginPortable/Data/settings/.purple
-	cp $(CONFIG_SRC)/prefs.xml $(DEST)/PidginPortable/Data/settings/.purple
-endif
-	## Configure Vidalia
-ifeq ($(USE_PIDGIN),1)
-	cp $(CONFIG_SRC)/vidalia.conf.ff+pidgin-linux $(DEST)/Data/Vidalia/vidalia.conf
-else
-	cp $(CONFIG_SRC)/vidalia.conf.ff-linux $(DEST)/Data/Vidalia/vidalia.conf
-endif
-	## Configure Polipo
-	#cp $(CONFIG_SRC)/polipo.conf $(DEST)/Data/Polipo/polipo.conf
-	## Configure Tor
-	cp $(CONFIG_SRC)/torrc-linux $(DEST)/Data/Tor/torrc
-	cp $(TOR_DIR)/src/config/geoip $(DEST)/Data/Tor/geoip
-	chmod 700 $(DEST)/Data/Tor
-
-# We've replaced the custom C program with a shell script for now...
-launcher:
-	cp ../src/RelativeLink/RelativeLink.sh $(DEST)/start-tor-browser
-	chmod +x $(DEST)/start-tor-browser
-
-strip-it-stripper:
-	strip $(APPDIR)/tor
-	#strip $(APPDIR)/polipo
-	strip $(APPDIR)/vidalia
-	strip $(LIBSDIR)/*.so*
-	strip $(LIBSDIR)/libz/*.so*
-
-##
-## How to create required extensions
-##
-
-## Torbutton development version
-#torbutton.xpi:
-#	$(WGET) -O $@ $(TORBUTTON)
-
-## NoScript development version
-noscript.xpi: 
-	$(WGET) -O $@ $(NOSCRIPT)
-
-## BetterPrivacy
-betterprivacy.xpi:
-	$(WGET) -O $@ $(BETTERPRIVACY)
-
-## HTTPS Everywhere
-#httpseverywhere.xpi:
-#	$(WGET) -O $@ --no-check-certificate $(HTTPSEVERYWHERE)
-
-## Generic language pack rule
-langpack_%.xpi:
-	$(WGET) -O $@ $(MOZILLA_LANGUAGE)/$*.xpi
-
-## English comes as default
-#langpack_en-US.xpi:
-#	touch $@
-
-##
-## Customize the bundle
-##
-
-bundle_%:
-	LANGCODE=$* make -f Makefile.linux bundle-localized
-compressed-bundle_%:
-	LANGCODE=$* make -f Makefile.linux compressed-bundle-localized
-
-bundle-localized_%.stamp:
-	make -f Makefile.linux copy-files_$* install-extensions install-betterprivacy install-lang-extensions patch-vidalia-language patch-firefox-language patch-pidgin-language update-extension-pref
-	touch bundle-localized_$*.stamp
-
-bundle-localized: bundle-localized_$(LANGCODE).stamp
-
-compressed-bundle-localized: bundle-localized_$(LANGCODE).stamp
-	-rm -f $(DISTDIR)/$(COMPRESSED_NAME)_$(LANGCODE).tar.gz
-	-mkdir $(DISTDIR)
-	tar -cvzf $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).tar.gz $(NAME)_$(LANGCODE);
-	rm *.zip *.xpi
-
-copy-files_%: generic-bundle.stamp
-	rm -fr $(NAME)_$*
-	#mkdir $(NAME)_$*
-	cp -r $(DEST) $(NAME)_$*
-
-BUNDLE=$(NAME)_$(LANGCODE)
-DUMMYPROFILE=$(BUNDLE)/.mozilla/
-
-## This is a little overcomplicated, but I'm keeping it here in case there are
-## extensions we want to use in the future
-install-extensions: $(DEFAULT_EXTENSIONS)
-	for extension in *.xpi; \
-		do \
-			cp $$extension $$extension.zip; \
-			ext_id=$$(unzip -p $$extension.zip install.rdf | sed -n '/<em:id>/{s#[^<]*<em:id>\(.*\)</em:id>#\1#p;q}'); \
-			mkdir -p $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id; \
-			cp $$extension $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id/$$extension.zip; \
-			(cd $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id/ && unzip *.zip && rm *.zip); \
-		done
-
-install-betterprivacy: betterprivacy.xpi
-	mkdir -p $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}
-	cp betterprivacy.xpi $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/betterprivacy.zip
-	(cd $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/ && unzip *.zip && rm *.zip);
-
-## Language extensions need to be handled differently from other extensions
-install-lang-extensions: $(filter-out langpack_en-US.xpi,langpack_$(LANGCODE).xpi)
-ifneq ($(LANGCODE), en-US)
-	mkdir -p $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org
-	cp langpack_$(LANGCODE).xpi $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/langpack_$(LANGCODE).zip
-	(cd $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org && unzip *.zip && rm *.zip)
-endif
-
-## Set the language for Vidalia
-patch-vidalia-language:
-	## Patch Vidalia
-	./patch-vidalia-language.sh $(BUNDLE)/Data/Vidalia/vidalia.conf $(LANGCODE) -e
-
-## Set the language for Pidgin
-patch-pidgin-language:
-	## Patch Pidgin
-ifeq ($(USE_PIDGIN),1)
-	./patch-pidgin-language.sh $(BUNDLE)/PidginPortable/Data/settings/PidginPortableSettings.ini $(LANGCODE) \
-                                   $(BUNDLE)/PidginPortable/App/Pidgin/locale \
-                                   $(BUNDLE)/PidginPortable/App/GTK/share/locale
-endif
-
-patch-firefox-language:
-	## Patch the default Firefox prefs.js
-	## Don't use {} because they aren't always interpreted correctly. Thanks, sh. 
-	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/App/Firefox/defaults/profile/
-	cp $(CONFIG_SRC)/no-polipo.js $(BUNDLE)/App/Firefox/defaults/profile/prefs.js
-	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/Data/profile
-	cp $(CONFIG_SRC)/no-polipo.js $(BUNDLE)/Data/profile/prefs.js
-	./patch-firefox-language.sh $(BUNDLE)/App/Firefox/defaults/profile/prefs.js $(LANGCODE) -e
-	./patch-firefox-language.sh $(BUNDLE)/Data/profile/prefs.js $(LANGCODE) -e
-
-## Fix prefs.js since extensions.checkCompatibility, false doesn't work
-update-extension-pref:
-	ext_ver=$$(sed -n '/em:version/{s,.*="\(.*\)".*,\1,p;q}' $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/install.rdf); \
-	sed -i -e "s/SHPONKA/langpack-$(LANGCODE)@firefox.mozilla.org:$$ext_ver/g" $(BUNDLE)/Data/profile/prefs.js
-
diff --git a/build-scripts/Makefile.osx b/build-scripts/Makefile.osx
deleted file mode 100644
index a82aa49..0000000
--- a/build-scripts/Makefile.osx
+++ /dev/null
@@ -1,528 +0,0 @@
-###
-### Makefile for building Tor USB bundle on Mac OS X
-###
-### Copyright 2007 Steven J. Murdoch <http://www.cl.cam.ac.uk/users/sjm217/>
-### Copyright 2009, 2010 Jacob Appelbaum <jacob at appelbaum.net>
-### Copyright 2010 Erinn Clark <erinn at torproject.org>
-###
-### You want to do the following currently supported activities:
-# This downloads and compiles everything
-### make -f Makefile.osx build-all-binaries
-# This makes a generic bundle
-### make -f Makefile.osx generic-bundle
-# This makes the English bundle
-### make -f Makefile.osx bundle_en-US
-# This makes the German bundle
-### make -f Makefile.osx bundle_de
-# This makes the German compressed bundle
-### make -f Makefile.osx compressed-bundle_de 
-# It's possible you may also want to do:
-### make -f Makefile.osx build-all-binaries
-### make -f Makefile.osx all-compressed-bundles
-### ...
-### Look in tbbosx-dist/ for your files.
-###
-### See LICENSE for licensing information
-###
-### $Id: Makefile 19973 2009-07-12 02:26:03Z phobos $
-###
-
-#####################
-### Configuration ###
-#####################
-
-## Architecture
-ARCH_TYPE=$(shell uname -m)
-
-## Location of directory for source unpacking
-FETCH_DIR=/build
-## Location of directory for prefix/destdir/compiles/etc
-BUILT_DIR=$(FETCH_DIR)/built
-TBB_FINAL=$(BUILT_DIR)/TBBL
-
-## Versions for our source packages
-HTTPSEVERY_VER=0.9.9.development.2
-FIREFOX_VER=3.6.13
-LIBEVENT_VER=1.4.13-stable
-LIBPNG_VER=1.4.3
-NOSCRIPT_VER=2.0.7
-OPENSSL_VER=0.9.8p
-OTR_VER=3.2.0
-PIDGIN_VER=2.6.4
-POLIPO_VER=1.0.4.1
-QT_VER=4.6.2
-TOR_VER=0.2.2.20-alpha
-TORBUTTON_VER=1.2.5
-VIDALIA_VER=0.2.10
-ZLIB_VER=1.2.3
-
-## Extension IDs
-FF_VENDOR_ID:=\{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
-
-## File names for the source packages
-ZLIB_PACKAGE=zlib-$(ZLIB_VER).tar.gz
-OPENSSL_PACKAGE=openssl-$(OPENSSL_VER).tar.gz
-QT_PACKAGE=qt-everywhere-opensource-src-$(QT_VER).tar.gz
-VIDALIA_PACKAGE=vidalia-$(VIDALIA_VER).tar.gz
-LIBEVENT_PACKAGE=libevent-$(LIBEVENT_VER).tar.gz
-TOR_PACKAGE=tor-$(TOR_VER).tar.gz
-POLIPO_PACKAGE=polipo-$(POLIPO_VER).tar.gz
-PIDGIN_PACKAGE=pidgin-$(PIDGIN_VER).tar.bz2
-FIREFOX_PACKAGE=firefox-$(FIREFOX_VER).tar.bz2
-
-## Location of files for download
-ZLIB_URL=http://www.gzip.org/zlib/$(ZLIB_PACKAGE)
-OPENSSL_URL=http://www.openssl.org/source/$(OPENSSL_PACKAGE)
-QT_URL=ftp://ftp.qt.nokia.com/qt/source/$(QT_PACKAGE)
-VIDALIA_URL=http://www.torproject.org/vidalia/dist/$(VIDALIA_PACKAGE)
-LIBEVENT_URL=http://www.monkey.org/~provos/$(LIBEVENT_PACKAGE)
-TOR_URL=http://www.torproject.org/dist/$(TOR_PACKAGE)
-POLIPO_URL=http://freehaven.net/~chrisd/polipo/$(POLIPO_PACKAGE)
-PIDGIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/$(PIDGIN_PACKAGE)
-#FIREFOX_URL=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/linux-i686/en-US/$(FIREFOX_PACKAGE)
-
-fetch-source:
-	-mkdir $(FETCH_DIR)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(ZLIB_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(OPENSSL_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(VIDALIA_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(LIBEVENT_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(TOR_URL)
-	$(WGET) --directory-prefix=$(FETCH_DIR) $(POLIPO_URL)
-
-unpack-source:
-	cd $(FETCH_DIR) && tar -xvzf $(ZLIB_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(OPENSSL_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(VIDALIA_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(LIBEVENT_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(TOR_PACKAGE)
-	cd $(FETCH_DIR) && tar -xvzf $(POLIPO_PACKAGE)
-
-source-dance: fetch-source unpack-source
-	echo "We're ready for building now."
-
-ZLIB_DIR=$(FETCH_DIR)/zlib-$(ZLIB_VER)
-ZLIB_OPTS=--shared --prefix=$(BUILT_DIR)
-build-zlib:
-	cd $(ZLIB_DIR) && ./configure $(ZLIB_OPTS)
-	cd $(ZLIB_DIR) && make
-	cd $(ZLIB_DIR) && make install
-
-OPENSSL_DIR=$(FETCH_DIR)/openssl-$(OPENSSL_VER)
-OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -I$(BUILT_DIR)/lib
-build-openssl:
-	cd $(OPENSSL_DIR) && ./config $(OPENSSL_OPTS)
-	cd $(OPENSSL_DIR) && make depend
-	cd $(OPENSSL_DIR) && CC=/usr/bin/gcc-4.0 \
-	CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk" \
-	LDFLAGS="-syslibroot /Developer/SDKs/MacOSX10.5.sdk" make
-	cd $(OPENSSL_DIR) && make install
-
-QT_DIR=$(FETCH_DIR)/qt-everywhere-opensource-src-$(QT_VER)
-QT_BUILD_PREFS=-qt-zlib -universal -confirm-license -opensource -openssl-linked -no-qt3support \
-	-fast -release -no-framework -nomake demos -nomake examples -sdk /Developer/SDKs/MacOSX10.4u.sdk/
-QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L $(BUILT_DIR)/lib
-build-qt:
-	cd $(QT_DIR) && ./configure $(QT_OPTS)
-	cd $(QT_DIR) && make -j2
-	cd $(QT_DIR) && make install
-
-VIDALIA_DIR=$(FETCH_DIR)/vidalia-$(VIDALIA_VER)
-VIDALIA_OPTS=-DOSX_TIGER_COMPAT=1 -DCMAKE_OSX_ARCHITECTURES=i386 -DOPENSSL_LIBRARY_DIR=$(BUILT_DIR)/lib -DCMAKE_BUILD_TYPE=debug ..
-build-vidalia:
-	export MACOSX_DEPLOYMENT_TARGET=10.4
-	-mkdir $(VIDALIA_DIR)/build
-	cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) \
-	&& make && make dist-osx-libraries
-	cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install
-
-LIBEVENT_DIR=$(FETCH_DIR)/libevent-$(LIBEVENT_VER)
-LIBEVENT_CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386"
-LIBEVENT_LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
-LIBEVENT_OPTS=--prefix=$(BUILT_DIR) --enable-static --disable-shared --disable-dependency-tracking CC="gcc-4.0"
-build-libevent:
-	cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) LDFLAGS=$(LIBEVENT_LDFLAGS) ./configure $(LIBEVENT_OPTS)
-	cd $(LIBEVENT_DIR) && make -j2
-	cd $(LIBEVENT_DIR) && make install
-
-TOR_DIR=$(FETCH_DIR)/tor-$(TOR_VER)
-TOR_CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386"
-TOR_LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
-TOR_OPTS=--with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) CC="gcc-4.0"
-build-tor:
-	cd $(TOR_DIR) && CFLAGS=$(TOR_CFLAGS) LDFLAGS=$(TOR_LDFLAGS) ./configure $(TOR_OPTS)
-	cd $(TOR_DIR) && make $(MAKEFLAGS)
-	cd $(TOR_DIR) && make install
-
-## Polipo doesn't use autoconf, so we just have to hack their Makefile
-## This probably needs to be updated if Polipo ever updates their Makefile
-POLIPO_DIR=$(FETCH_DIR)/polipo-$(POLIPO_VER)
-POLIPO_MAKEFILE=$(CONFIG_SRC)/polipo-Makefile
-build-polipo:
-	cp $(POLIPO_MAKEFILE) $(POLIPO_DIR)/Makefile
-	cd $(POLIPO_DIR) && make CFLAGS="-mmacosx-version-min=10.4" \
-	&& PREFIX=$(FETCH_DIR)/built/ make install.binary
-
-build-pidgin:
-	echo "We're not building pidgin yet!"
-
-build-firefox:
-	echo "We're using a prebuilt firefox. Fix this someday!"
-
-build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-polipo
-	echo "If we're here, we've done something right."
-
-## Location of compiled libraries
-COMPILED_LIBS=$(BUILT_DIR)/lib
-## Location of compiled binaries
-COMPILED_BINS=$(BUILT_DIR)/bin/
-
-## Location of the libraries we've built
-QT=$(COMPILED_LIBS)
-OPENSSL=$(COMPILED_LIBS)
-ZLIB=$(COMPILED_LIBS)
-LIBEVENT=$(COMPILED_LIBS)
-
-## Location of binary bundle components
-VIDALIA=$(BUILT_DIR)/usr/local/bin/Vidalia.app/
-TOR=$(COMPILED_BINS)/tor
-POLIPO=$(COMPILED_BINS)/polipo
-## Someday, this will be our custom Firefox
-FIREFOX=$(FETCH_DIR)/Firefox.app
-PIDGIN=$(COMPILED_BINS)/pidgin
-
-## Location of utility applications
-WGET:=$(shell which wget)
-
-## Size of split archive volumes for WinRAR
-SPLITSIZE=1440k
-
-## Location of config files
-CONFIG_SRC=config
-
-## Destination for the generic bundle
-DEST=generic-bundle
-
-## Name of the bundle
-NAME=TorBrowser
-
-## Where shall we put the finished files for distribution?
-DISTDIR=tbbosx-dist
-
-## Version and name of the compressed bundle (also used for source)
-VERSION=1.0.8-dev
-DEFAULT_COMPRESSED_BASENAME=TorBrowser-$(VERSION)-osx-$(ARCH_TYPE)-
-IM_COMPRESSED_BASENAME=TorBrowser-IM-$(VERSION)-
-DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME)
-IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION)
-
-ifeq ($(USE_PIDGIN),1)
-COMPRESSED_NAME=$(IM_COMPRESSED_NAME)
-else
-COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME)
-endif
-
-## Extensions to install by default
-DEFAULT_EXTENSIONS=torbutton.xpi
-
-## Where to download Torbutton from
-TORBUTTON=https://www.torproject.org/torbutton/releases/torbutton-$(TORBUTTON_VER).xpi
-NOSCRIPT=https://secure.informaction.com/download/releases/noscript-$(NOSCRIPT_VER).xpi
-BETTERPRIVACY=https://addons.mozilla.org/en-US/firefox/downloads/latest/6623/addon-6623-latest.xpi
-HTTPSEVERYWHERE=https://eff.org/files/https-everywhere-$(HTTPSEVERY_VER).xpi
-## Where to download Mozilla language packs
-MOZILLA_LANGUAGE=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/mac/xpi
-
-## Put more extensions here
-EXTENSIONS_DIR=extensions
-
-## Local overrides
--include local.makefile
-
-#############
-### Rules ###
-#############
-
-##
-## Default rule
-##
-
-#bundle: bundle_en-US
-bundle: bundle_en-US
-
-all-bundles-both:
-	USE_PIDGIN=1 make -f Makefile.osx all-bundles
-	make -f Makefile.osx clean
-	USE_PIDGIN=0 make -f Makefile.osx all-bundles
-	make -f Makefile.osx clean
-	USE_SANDBOX=1 make -f Makefile.osx all-bundles
-	make -f Makefile.osx clean
-	USE_SANDBOX=0 make -f Makefile.osx all-bundles
-	make -f Makefile.osx clean
-
-all-bundles: all-compressed-bundles
-
-all-compressed-bundles: compressed-bundle_ar \
-	compressed-bundle_de \
-	compressed-bundle_en-US \
-	compressed-bundle_es-ES \
-	compressed-bundle_fa \
-	compressed-bundle_fr \
-	compressed-bundle_nl \
-	compressed-bundle_pl \
-	compressed-bundle_pt-PT \
-	compressed-bundle_ru \
-	compressed-bundle_zh-CN \
-	compressed-bundle_it
-
-##
-## Cleanup
-##
-
-clean:
-	rm -fr $(DISTDIR)
-	rm -fr *.app
-	rm -fr $(DEST) *.stamp
-	rm -f *~
-	rm -fr *.xpi *.jar *.zip
-	rm -fr $(NAME)_*
-	cd ../src/RelativeLink/ && $(MAKE) clean
-
-##
-## Generate a non-localized bundle and put in $(DEST)
-##
-
-## Install binaries, documentation, FirefoxPortable, PidginPortable, and launcher into $(DEST)
-generic-bundle.stamp:
-	make -f Makefile.osx generic-bundle
-generic-bundle: directory-structure install-binaries install-docs install-firefox install-pidgin configure-apps launcher strip-it-stripper
-	touch generic-bundle.stamp
-
-APPDIR=$(DEST)/Contents/MacOS
-LIBSDIR=$(DEST)/Contents/Frameworks
-DOCSDIR=$(DEST)/Contents/Resources/Docs
-DATADIR=$(DEST)/Contents/Resources/Data
-TB_TMPDIR=$(DEST)/Contents/SharedSupport
-
-## Build directory structure
-directory-structure: 
-	rm -fr $(DEST)
-	mkdir -p $(APPDIR)
-	mkdir -p $(APPDIR)/Firefox.app/Contents/MacOS/Data/profile
-	mkdir -p $(APPDIR)/Firefox.app/Contents/MacOS/Data/plugins
-	mkdir -p $(LIBSDIR)
-	mkdir -p $(DATADIR)/Tor
-	mkdir -p $(DATADIR)/Vidalia
-	mkdir -p $(DATADIR)/Polipo
-	mkdir -p $(DOCSDIR)
-	mkdir -p $(TB_TMPDIR)
-
-## Package up all the Vidalia and Tor pre-requisites
-## Firefox and Pidgin are installed in their own targets
-install-binaries: 
-	# zlib
-	cp -R $(ZLIB)/libz.1.2.3.dylib $(ZLIB)/libz.1.dylib $(ZLIB)/libz.dylib $(LIBSDIR)
-	# Libevent
-	cp -R $(LIBEVENT)/libevent.a  $(LIBEVENT)/libevent_core.a $(LIBEVENT)/libevent_extra.a \
-	   $(LIBEVENT)/libevent.la $(LIBEVENT)/libevent_core.la $(LIBEVENT)/libevent_extra.la $(LIBSDIR)
-	# OpenSSL
-	cp -R $(OPENSSL)/libcrypto.dylib $(OPENSSL)/libcrypto.0.9.8.dylib $(OPENSSL)/libssl.dylib \
-	   $(OPENSSL)/libssl.0.9.8.dylib $(LIBSDIR)
-	#cp -R $(OPENSSL)/libcrypto* $(OPENSSL)/libssl* $(LIBSDIR)
-	# Vidalia
-	cp -R $(VIDALIA) $(APPDIR)/Vidalia.app
-	# Polipo
-	cp $(POLIPO) $(APPDIR)
-	# Tor (perhaps we want tor-resolve too?)
-	cp $(TOR) $(APPDIR)
-
-## Fixup
-## Collect up license files
-install-docs:
-	mkdir -p $(DOCSDIR)/Vidalia
-	mkdir -p $(DOCSDIR)/Tor
-	mkdir -p $(DOCSDIR)/Qt
-	mkdir -p $(DOCSDIR)/Polipo
-	cp $(VIDALIA_DIR)/LICENSE* $(VIDALIA_DIR)/CREDITS $(DOCSDIR)/Vidalia
-	cp $(TOR_DIR)/LICENSE $(TOR_DIR)/README $(DOCSDIR)/Tor
-	cp $(QT_DIR)/LICENSE.GPL* $(QT_DIR)/LICENSE.LGPL $(DOCSDIR)/Qt
-	cp $(POLIPO_DIR)/COPYING  $(POLIPO_DIR)/README $(DOCSDIR)/Polipo
-	cp ../LICENSE $(DEST)
-	cp ../README.OSX $(DEST)/README-TorBrowserBundle
-
-## Copy over Firefox
-install-firefox:
-	cp -R $(FIREFOX) $(APPDIR)
-	# Due to various issues with a broken libxml2, we'll remove these...
-	#rm -f $(APPDIR)/Firefox/components/libnkgnomevfs.so
-	#rm -f $(APPDIR)/Firefox/components/libmozgnome.so
-
-## Copy over Pidgin
-install-pidgin:
-ifeq ($(USE_PIDGIN),1)
-	cp -R $(PIDGIN) $(APPDIR)
-endif
-
-## Configure Firefox, Vidalia, Polipo and Tor
-configure-apps:
-	## Configure Firefox preferences
-	#mkdir -p $(DEST)/.mozilla/Firefox/firefox.default
-	cp -R $(CONFIG_SRC)/firefox-profiles.ini $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profiles.ini
-	cp $(CONFIG_SRC)/bookmarks.html $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profile
-	cp $(CONFIG_SRC)/prefs.js $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profile/prefs.js
-	cp $(CONFIG_SRC)/Info.plist $(DEST)/Contents
-	cp $(CONFIG_SRC)/PkgInfo $(DEST)/Contents
-	cp $(CONFIG_SRC)/qt.conf $(DEST)/Contents/Resources
-	cp $(CONFIG_SRC)/vidalia.icns $(DEST)/Contents/Resources
-	## Configure Pidgin
-ifeq ($(USE_PIDGIN),1)
-	mkdir -p $(DEST)/PidginPortable/Data/settings/.purple
-	cp $(CONFIG_SRC)/prefs.xml $(DEST)/PidginPortable/Data/settings/.purple
-endif
-	## Configure Vidalia
-	mkdir -p $(DEST)/Library/Vidalia
-ifeq ($(USE_SANDBOX),1)
-	cp $(CONFIG_SRC)/vidalia.conf.ff-osx-sandbox $(DEST)/Library/Vidalia/vidalia.conf
-else
-	cp $(CONFIG_SRC)/vidalia.conf.ff-osx $(DEST)/Library/Vidalia/vidalia.conf
-endif
-	## Configure Polipo
-	cp $(CONFIG_SRC)/polipo.conf $(DEST)/Contents/Resources/Data/Polipo/polipo.conf
-	## Configure Tor
-	#cp $(CONFIG_SRC)/torrc-osx $(DEST)/Contents/Resources/Data/Tor/torrc
-	cp $(CONFIG_SRC)/torrc-osx $(DEST)/Library/Vidalia/torrc
-	cp $(TOR_DIR)/src/config/geoip $(DEST)/Contents/Resources/Data/Tor/geoip
-	chmod 700 $(DATADIR)/Tor
-
-# We've replaced the custom C program with a shell script for now...
-launcher:
-	cp ../src/RelativeLink/RelativeLinkOSX.sh $(DEST)/Contents/MacOS/TorBrowserBundle
-	chmod +x $(DEST)/Contents/MacOS/TorBrowserBundle
-
-strip-it-stripper:
-	strip $(APPDIR)/tor
-	strip $(APPDIR)/polipo
-	strip $(APPDIR)/Vidalia.app/Contents/MacOS/Vidalia
-	#strip $(LIBSDIR)/*
-
-##
-## How to create required extensions
-##
-
-## Torbutton development version
-torbutton.xpi:
-	$(WGET) --no-check-certificate -O $@ $(TORBUTTON)
-
-## BetterPrivacy
-betterprivacy.xpi:
-	$(WGET) --no-check-certificate -O $@ $(BETTERPRIVACY)
-
-## NoScript development version
-noscript.xpi: 
-	$(WGET) --no-check-certificate -O $@ $(NOSCRIPT)
-
-## HTTPS Everywhere
-httpseverywhere.xpi:
-	$(WGET) --no-check-certificate -O $@ $(HTTPSEVERYWHERE)
-
-## Generic language pack rule
-langpack_%.xpi:
-	$(WGET) --no-check-certificate -O $@ $(MOZILLA_LANGUAGE)/$*.xpi
-
-## English comes as default
-#langpack_en-US.xpi:
-#	touch $@
-
-##
-## Customize the bundle
-##
-
-bundle_%:
-	LANGCODE=$* make -f Makefile.osx bundle-localized
-compressed-bundle_%:
-	LANGCODE=$* make -f Makefile.osx compressed-bundle-localized
-bundle-localized_%.stamp:
-	make -f Makefile.osx copy-files_$* install-extensions install-betterprivacy install-httpseverywhere install-noscript install-lang-extensions patch-vidalia-language patch-firefox-language patch-pidgin-language update-extension-pref final
-	touch bundle-localized_$*.stamp
-
-bundle-localized: bundle-localized_$(LANGCODE).stamp
-
-compressed-bundle-localized: bundle-localized_$(LANGCODE).stamp
-	-rm -f $(DISTDIR)/$(COMPRESSED_NAME)_$(LANGCODE).zip
-	-mkdir $(DISTDIR)
-	#hdiutil create -volname "Tor Browser Bundle for OS X" -format UDBZ -imagekey zlib-level=9 -srcfolder $(DISTDIR)/tmp/ $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).dmg
-	zip -r $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).zip $(NAME)_$(LANGCODE).app
-	rm *.zip *.xpi
-	cp ../https/httpseverywhere.xpi .
-
-copy-files_%: generic-bundle.stamp
-	rm -fr $(NAME)_$*
-	#mkdir $(NAME)_$*
-	cp -r $(DEST) $(NAME)_$*
-
-BUNDLE=$(NAME)_$(LANGCODE)
-DUMMYPROFILE=$(BUNDLE)/Library
-
-## This is a little overcomplicated, but I'm keeping it here in case there are
-## extensions we want to use in the future
-install-extensions: $(DEFAULT_EXTENSIONS)
-	for extension in torbutton.xpi; \
-		do \
-			cp $$extension $$extension.zip; \
-			ext_id=$$(unzip -p $$extension.zip install.rdf | sed -n '/<em:id>/{s#[^<]*<em:id>\(.*\)</em:id>#\1#p;q;}'); \
-			mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id; \
-			cp $$extension $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id/$$extension.zip; \
-			(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id/ && unzip *.zip && rm *.zip); \
-		done
-
-## Language extensions need to be handled differently from other extensions
-install-lang-extensions: $(filter-out langpack_en-US.xpi,langpack_$(LANGCODE).xpi)
-ifneq ($(LANGCODE), en-US)
-	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org
-	cp langpack_$(LANGCODE).xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/langpack_$(LANGCODE).zip
-	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org && unzip *.zip && rm *.zip)
-endif
-
-install-betterprivacy: betterprivacy.xpi
-	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}
-	cp betterprivacy.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/betterprivacy.zip
-	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\} && unzip *.zip && rm *.zip)
-	
-install-httpseverywhere: 
-	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org
-	cp httpseverywhere.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org/httpseverywhere.zip
-	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org && unzip *.zip && rm *.zip)
-	
-install-noscript: noscript.xpi
-	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\}
-	cp noscript.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\}/noscript.zip
-	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\} && unzip *.zip && rm *.zip)
-
-## Set the language for Vidalia
-patch-vidalia-language:
-	## Patch Vidalia
-	./patch-vidalia-language.sh $(BUNDLE)/Library/Vidalia/vidalia.conf $(LANGCODE) -e
-
-## Set the language for Pidgin
-patch-pidgin-language:
-	## Patch Pidgin
-ifeq ($(USE_PIDGIN),1)
-	./patch-pidgin-language.sh $(BUNDLE)/PidginPortable/Data/settings/PidginPortableSettings.ini $(LANGCODE) \
-                                   $(BUNDLE)/PidginPortable/App/Pidgin/locale \
-                                   $(BUNDLE)/PidginPortable/App/GTK/share/locale
-endif
-
-patch-firefox-language:
-	## Patch the default Firefox prefs.js
-	## Don't use {} because they aren't always interpreted correctly. Thanks, sh. 
-	cp $(CONFIG_SRC)/prefs.js $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
-	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile
-	./patch-firefox-language.sh $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js $(LANGCODE) -e
-
-## Fix prefs.js since extensions.checkCompatibility, false doesn't work
-update-extension-pref:
-	ext_ver=$$(sed -n '/em:version/{s,.*="\(.*\)".*,\1,p;q;}' $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/install.rdf); \
-	sed -i -e "s/SHPONKA/langpack-$(LANGCODE)@firefox.mozilla.org:$$ext_ver/g" $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
-
-final: 
-	mv $(BUNDLE) $(BUNDLE).app
diff --git a/build-scripts/config/no-polipo.js b/build-scripts/config/no-polipo.js
index 6f7d730..56b2076 100644
--- a/build-scripts/config/no-polipo.js
+++ b/build-scripts/config/no-polipo.js
@@ -19,6 +19,7 @@ user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1216566539);
 user_pref("browser.bookmarks.livemark_refresh_seconds", 31536000);
 user_pref("browser.cache.disk.capacity", 0);
 user_pref("browser.cache.disk.enable", false);
+user_pref("browser.cache.offline.enable", false);
 user_pref("browser.download.manager.retention", 0);
 user_pref("browser.download.useDownloadDir", false);
 user_pref("browser.formfill.enable", false);
@@ -127,6 +128,8 @@ user_pref("browser.history_expire_days", 0);
 user_pref("browser.history_expire_days.mirror", 0);
 user_pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
 user_pref("capability.policy.maonoscript.sites", "addons.mozilla.org about: about:blank about:blocked about:certerror about:config about:credits about:neterror about:plugins about:privatebrowsing about:sessionrestore chrome: resource:");
+user_pref("geo.enabled", false);
+user_pref("geo.wifi.uri", "");
 user_pref("noscript.ABE.enabled", false);
 user_pref("noscript.ABE.notify", false);
 user_pref("noscript.autoReload", false);
diff --git a/build-scripts/config/prefs.js b/build-scripts/config/prefs.js
index f921028..50ca7c5 100644
--- a/build-scripts/config/prefs.js
+++ b/build-scripts/config/prefs.js
@@ -19,6 +19,7 @@ user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1216566539);
 user_pref("browser.bookmarks.livemark_refresh_seconds", 31536000);
 user_pref("browser.cache.disk.capacity", 0);
 user_pref("browser.cache.disk.enable", false);
+user_pref("browser.cache.offline.enable", false);
 user_pref("browser.download.manager.retention", 0);
 user_pref("browser.download.useDownloadDir", false);
 user_pref("browser.formfill.enable", false);
@@ -75,6 +76,8 @@ user_pref("general.useragent.locale", "BUNDLELOCALE");
 user_pref("general.useragent.override", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20080404 Firefox/3.5.11");
 user_pref("general.useragent.vendor", "");
 user_pref("general.useragent.vendorSub", "");
+user_pref("geo.enabled", false);
+user_pref("geo.wifi.uri", "");
 user_pref("intl.accept_languages", "en-us, en");
 user_pref("intl.charsetmenu.browser.cache", "UTF-8");
 user_pref("network.cookie.cookieBehavior", 1);
diff --git a/build-scripts/linux.mk b/build-scripts/linux.mk
new file mode 100644
index 0000000..fd3da4c
--- /dev/null
+++ b/build-scripts/linux.mk
@@ -0,0 +1,525 @@
+###
+### Makefile for building Tor USB bundle on Gnu/Linux
+###
+### Copyright 2007 Steven J. Murdoch <http://www.cl.cam.ac.uk/users/sjm217/>
+### Copyright 2009 Jacob Appelbaum <jacob at appelbaum.net>
+### Copyright 2010 Erinn Clark <erinn at torproject.org>
+###
+### You want to do the following currently supported activities:
+# This downloads and compiles everything
+### make -f Makefile.linux build-all-binaries
+# This makes a generic bundle
+### make -f Makefile.linux generic-bundle
+# This makes the English bundle
+### make -f Makefile.linux bundle_en-US
+# This makes the German bundle
+### make -f Makefile.linux bundle_de
+# This makes the German compressed bundle
+### make -f Makefile.linux compressed-bundle_de 
+# It's possible you may also want to do:
+### make -f Makefile.linux build-all-binaries
+### make -f Makefile.linux all-compressed-bundles
+### ...
+### Look in tbbl-dist/ for your files.
+###
+### See LICENSE for licensing information
+###
+### $Id: Makefile 19973 2009-07-12 02:26:03Z phobos $
+###
+
+#####################
+### Configuration ###
+#####################
+
+## Architecture
+ARCH_TYPE=$(shell uname -m)
+
+## Location of directory for source unpacking
+FETCH_DIR=/build
+## Location of directory for prefix/destdir/compiles/etc
+BUILT_DIR=$(FETCH_DIR)/built
+TBB_FINAL=$(BUILT_DIR)/TBBL
+
+## Versions for our source packages
+HTTPSEVERY_VER=0.9.9.development.2
+FIREFOX_VER=3.6.13
+LIBEVENT_VER=1.4.13-stable
+LIBPNG_VER=1.4.3
+NOSCRIPT_VER=2.0.7
+OPENSSL_VER=0.9.8p
+OTR_VER=3.2.0
+PIDGIN_VER=2.6.4
+POLIPO_VER=1.0.4.1
+QT_VER=4.6.2
+TOR_VER=0.2.2.20-alpha
+TORBUTTON_VER=1.2.5
+VIDALIA_VER=0.2.10
+ZLIB_VER=1.2.3
+
+## Extension IDs
+FF_VENDOR_ID:=\{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
+
+## File names for the source packages
+FIREFOX_PACKAGE=firefox-$(FIREFOX_VER).source.tar.bz2
+LIBEVENT_PACKAGE=libevent-$(LIBEVENT_VER).tar.gz
+LIBPNG_PACKAGE=libpng-$(LIBPNG_VER).tar.gz
+OPENSSL_PACKAGE=openssl-$(OPENSSL_VER).tar.gz
+PIDGIN_PACKAGE=pidgin-$(PIDGIN_VER).tar.bz2
+POLIPO_PACKAGE=polipo-$(POLIPO_VER).tar.gz
+QT_PACKAGE=qt-everywhere-opensource-src-$(QT_VER).tar.gz
+TOR_PACKAGE=tor-$(TOR_VER).tar.gz
+VIDALIA_PACKAGE=vidalia-$(VIDALIA_VER).tar.gz
+ZLIB_PACKAGE=zlib-$(ZLIB_VER).tar.gz
+
+## Location of files for download
+FIREFOX_URL=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/source/$(FIREFOX_PACKAGE)
+LIBEVENT_URL=http://www.monkey.org/~provos/$(LIBEVENT_PACKAGE)
+LIBPNG_URL=http://download.sourceforge.net/libpng/$(LIBPNG_PACKAGE).tar.gz
+OPENSSL_URL=https://www.openssl.org/source/$(OPENSSL_PACKAGE)
+PIDGIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/$(PIDGIN_PACKAGE)
+POLIPO_URL=http://freehaven.net/~chrisd/polipo/$(POLIPO_PACKAGE)
+QT_URL=ftp://ftp.qt.nokia.com/qt/source/$(QT_PACKAGE)
+TOR_URL=https://www.torproject.org/dist/$(TOR_PACKAGE)
+VIDALIA_URL=https://www.torproject.org/vidalia/dist/$(VIDALIA_PACKAGE)
+ZLIB_URL=http://www.gzip.org/zlib/$(ZLIB_PACKAGE)
+
+fetch-source:
+	-mkdir $(FETCH_DIR)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(ZLIB_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(OPENSSL_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(QT_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(VIDALIA_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(LIBEVENT_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(TOR_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(POLIPO_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(PIDGIN_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(FIREFOX_URL)
+
+unpack-source:
+	cd $(FETCH_DIR) && tar -xvzf $(ZLIB_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(OPENSSL_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(QT_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(VIDALIA_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(LIBEVENT_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(TOR_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(POLIPO_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvjf $(FIREFOX_PACKAGE)
+
+source-dance: fetch-source unpack-source
+	echo "We're ready for building now."
+
+ZLIB_DIR=$(FETCH_DIR)/zlib-$(ZLIB_VER)
+ZLIB_OPTS=--shared --prefix=$(BUILT_DIR)
+build-zlib:
+	cd $(ZLIB_DIR) && ./configure $(ZLIB_OPTS)
+	cd $(ZLIB_DIR) && make
+	cd $(ZLIB_DIR) && make install
+
+OPENSSL_DIR=$(FETCH_DIR)/openssl-$(OPENSSL_VER)
+OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -I$(BUILT_DIR)/include -L$(BUILT_DIR)/lib
+CFLAGS=-Wa, --noexecstack
+build-openssl:
+	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack ./config $(OPENSSL_OPTS)
+	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack make depend
+	cd $(OPENSSL_DIR) && CFLAGS=-Wa,--noexecstack make
+	cd $(OPENSSL_DIR) && make install
+
+QT_DIR=$(FETCH_DIR)/qt-everywhere-opensource-src-$(QT_VER)
+QT_BUILD_PREFS=-system-zlib -confirm-license -opensource -openssl-linked -no-qt3support -fast -release -nomake demos -nomake examples
+QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L$(BUILT_DIR)/lib
+build-qt:
+	cd $(QT_DIR) && ./configure $(QT_OPTS)
+	cd $(QT_DIR) && make
+	cd $(QT_DIR) && make install
+
+VIDALIA_DIR=$(FETCH_DIR)/vidalia-$(VIDALIA_VER)
+VIDALIA_OPTS=-DOPENSSL_LIBRARY_DIR=$(BUILT_DIR)/lib -DCMAKE_BUILD_TYPE=debug -DQT_QMAKE_EXECUTABLE=$(BUILT_DIR)/bin/qmake ..
+build-vidalia:
+	-mkdir $(VIDALIA_DIR)/build
+	cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) && make
+	cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install
+
+LIBEVENT_DIR=$(FETCH_DIR)/libevent-$(LIBEVENT_VER)
+LIBEVENT_OPTS=--prefix=$(BUILT_DIR)
+build-libevent:
+	cd $(LIBEVENT_DIR) && ./configure $(LIBEVENT_OPTS)
+	cd $(LIBEVENT_DIR) && make -j2
+	cd $(LIBEVENT_DIR) && make install
+
+LIBPNG_DIR=$(FETCH_DIR)/libpng-$(LIBPNG_VER)
+LIBPNG_OPTS=--prefix=$(BUILT_DIR)
+build-libpng:
+	cd $(LIBPNG_DIR) && ./configure $(LIBPNG_OPTS)
+	cd $(LIBPNG_DIR) && make
+	cd $(LIBPNG_DIR) && make install
+
+TOR_DIR=$(FETCH_DIR)/tor-$(TOR_VER)
+TOR_OPTS=--with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR)
+build-tor:
+	cd $(TOR_DIR) && ./configure $(TOR_OPTS)
+	cd $(TOR_DIR) && make -j2
+	cd $(TOR_DIR) && make install
+
+## Polipo doesn't use autoconf, so we just have to hack their Makefile
+## This probably needs to be updated if Polipo ever updates their Makefile
+POLIPO_DIR=$(FETCH_DIR)/polipo-$(POLIPO_VER)
+POLIPO_MAKEFILE=$(CONFIG_SRC)/polipo-Makefile
+build-polipo:
+	cp $(POLIPO_MAKEFILE) $(POLIPO_DIR)/Makefile
+	cd $(POLIPO_DIR) && make && PREFIX=$(FETCH_DIR)/built/ make install.binary
+
+build-pidgin:
+	echo "We're not building pidgin yet!"
+
+build-firefox:
+	# XXX: add directions ASAP
+
+# source-dance unpack-source
+build-all-binaries: build-zlib build-openssl build-libpng build-qt build-vidalia build-libevent build-tor build-polipo
+	echo "If we're here, we've done something right."
+
+## Location of compiled libraries
+COMPILED_LIBS=$(BUILT_DIR)/lib
+## Location of compiled binaries
+COMPILED_BINS=$(BUILT_DIR)/bin/
+
+## Location of the libraries we've built
+LIBEVENT=$(COMPILED_LIBS)
+LIBPNG=$(COMPILED_LIBS)
+OPENSSL=$(COMPILED_LIBS)
+QT=$(COMPILED_LIBS)
+ZLIB=$(COMPILED_LIBS)
+
+## Location of binary bundle components
+POLIPO=$(COMPILED_BINS)/polipo
+TOR=$(COMPILED_BINS)/tor
+VIDALIA=$(BUILT_DIR)/usr/local/bin/vidalia
+## Someday, this will be our custom Firefox
+FIREFOX=$(FETCH_DIR)/Firefox
+PIDGIN=$(COMPILED_BINS)/pidgin
+
+## Location of utility applications
+WGET:=$(shell which wget)
+
+## Size of split archive volumes for WinRAR
+SPLITSIZE=1440k
+
+## Location of config files
+CONFIG_SRC=config
+
+## Destination for the generic bundle
+DEST=generic-bundle
+
+## Name of the bundle
+NAME=tor-browser
+
+## Where shall we put the finished files for distribution?
+DISTDIR=tbbl-dist
+
+## Version and name of the compressed bundle (also used for source)
+VERSION=1.1.2-dev
+DEFAULT_COMPRESSED_BASENAME=tor-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)
+
+ifeq ($(USE_PIDGIN),1)
+COMPRESSED_NAME=$(IM_COMPRESSED_NAME)
+else
+COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME)
+endif
+
+## Extensions to install by default
+DEFAULT_EXTENSIONS=torbutton.xpi noscript.xpi httpseverywhere.xpi
+
+## Where to download Torbutton from
+TORBUTTON=https://www.torproject.org/torbutton/releases/torbutton-$(TORBUTTON_VER).xpi
+NOSCRIPT=https://secure.informaction.com/download/releases/noscript-$(NOSCRIPT_VER).xpi
+BETTERPRIVACY=https://addons.mozilla.org/en-US/firefox/downloads/latest/6623/addon-6623-latest.xpi
+HTTPSEVERYWHERE=https://eff.org/files/https-everywhere-$(HTTPSEVERY_VER).xpi
+## Where to download Mozilla language packs
+MOZILLA_LANGUAGE=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/linux-i686/xpi
+
+## Put more extensions here
+EXTENSIONS_DIR=extensions
+
+## Local overrides
+-include local.makefile
+
+#############
+### Rules ###
+#############
+
+##
+## Default rule
+##
+
+#bundle: bundle_en-US
+bundle: bundle_en-US
+
+all-bundles-both:
+	USE_PIDGIN=1 make -f Makefile.linux all-bundles
+	make -f Makefile.linux clean
+	USE_PIDGIN=0 make -f Makefile.linux all-bundles
+	make -f Makefile.linux clean
+
+all-bundles: all-compressed-bundles
+
+all-compressed-bundles: compressed-bundle_ar \
+	compressed-bundle_de \
+	compressed-bundle_en-US \
+	compressed-bundle_es-ES \
+	compressed-bundle_fa \
+	compressed-bundle_fr \
+	compressed-bundle_nl \
+	compressed-bundle_pl \
+	compressed-bundle_pt-PT \
+	compressed-bundle_ru \
+	compressed-bundle_zh-CN \
+	compressed-bundle_it \
+	compressed-bundle_vi
+
+##
+## Cleanup
+##
+
+clean:
+	rm -fr $(DISTDIR)
+	rm -fr *.tar.gz
+	rm -fr $(DEST) *.stamp
+	rm -f *~
+	rm -fr *.xpi *.jar *.zip
+	rm -fr $(NAME)_*
+	cd ../src/RelativeLink/ && $(MAKE) clean
+
+##
+## Generate a non-localized bundle and put in $(DEST)
+##
+
+## Install binaries, documentation, FirefoxPortable, PidginPortable, and launcher into $(DEST)
+generic-bundle.stamp:
+	make -f Makefile.linux generic-bundle
+generic-bundle: directory-structure install-binaries install-docs install-firefox install-pidgin configure-apps launcher strip-it-stripper
+	touch generic-bundle.stamp
+
+APPDIR=$(DEST)/App
+LIBSDIR=$(DEST)/Lib
+DOCSDIR=$(DEST)/Docs
+DATADIR=$(DEST)/Data
+TB_TMPDIR=$(DEST)/tmp
+
+## Build directory structure
+directory-structure: 
+	rm -fr $(DEST)
+	mkdir -p $(APPDIR)
+	mkdir -p $(LIBSDIR)
+	mkdir -p $(LIBSDIR)/libz
+	mkdir -p $(DATADIR)/Tor
+	mkdir -p $(DATADIR)/Vidalia
+	#mkdir -p $(DATADIR)/Polipo
+	mkdir -p $(DATADIR)/profile
+	mkdir -p $(DOCSDIR)
+	mkdir -p $(TB_TMPDIR)
+
+## Package up all the Vidalia and Tor pre-requisites
+## Firefox and Pidgin are installed in their own targets
+install-binaries:
+	# A minimal set of Qt libs and the proper symlinks
+	cp -d $(QT)/libQtCore.so $(QT)/libQtCore.so.4 $(QT)/libQtCore.so.4.6 $(QT)/libQtCore.so.4.6.2 $(LIBSDIR)
+	cp -d $(QT)/libQtGui.so $(QT)/libQtGui.so.4 $(QT)/libQtGui.so.4.6 $(QT)/libQtGui.so.4.6.2 $(LIBSDIR)
+	cp -d $(QT)/libQtNetwork.so $(QT)/libQtNetwork.so.4 $(QT)/libQtNetwork.so.4.6 \
+           $(QT)/libQtNetwork.so.4.6.2 $(LIBSDIR)
+	cp -d $(QT)/libQtXml.so $(QT)/libQtXml.so.4 $(QT)/libQtXml.so.4.6 $(QT)/libQtXml.so.4.6.2 $(LIBSDIR)
+	# zlib
+	cp -d $(ZLIB)/libz.so $(ZLIB)/libz.so.1 $(ZLIB)/libz.so.1.2.3 $(LIBSDIR)/libz
+	# Libevent
+	cp -d $(LIBEVENT)/libevent-1.4.so.2 $(LIBEVENT)/libevent-1.4.so.2.1.3 $(LIBEVENT)/libevent_core.so \
+           $(LIBEVENT)/libevent_core-1.4.so.2 $(LIBEVENT)/libevent_core-1.4.so.2.1.3 \
+           $(LIBEVENT)/libevent_extra-1.4.so.2 $(LIBEVENT)/libevent_extra-1.4.so.2.1.3 \
+           $(LIBEVENT)/libevent_extra.so $(LIBEVENT)/libevent.so $(LIBSDIR)
+	# libpng
+	cp -d $(LIBPNG)/libpng14.so* $(LIBSDIR) 
+	# OpenSSL
+	cp -d $(OPENSSL)/libcrypto.a $(OPENSSL)/libssl.a $(OPENSSL)/libssl.so* $(OPENSSL)/libcrypto.so* $(LIBSDIR)
+	# Vidalia
+	cp $(VIDALIA) $(APPDIR)
+	# Polipo
+	#cp $(POLIPO) $(APPDIR)
+	# Tor (perhaps we want tor-resolve too?)
+	cp $(TOR) $(APPDIR)
+
+## Fixup
+## Collect up license files
+install-docs:
+	mkdir -p $(DOCSDIR)/Vidalia
+	mkdir -p $(DOCSDIR)/Tor
+	mkdir -p $(DOCSDIR)/Qt
+	#mkdir -p $(DOCSDIR)/Polipo
+	cp $(VIDALIA_DIR)/LICENSE* $(VIDALIA_DIR)/CREDITS $(DOCSDIR)/Vidalia
+	cp $(TOR_DIR)/LICENSE $(TOR_DIR)/README $(DOCSDIR)/Tor
+	cp $(QT_DIR)/LICENSE.GPL* $(QT_DIR)/LICENSE.LGPL $(DOCSDIR)/Qt
+	#cp $(POLIPO_DIR)/COPYING  $(POLIPO_DIR)/README $(DOCSDIR)/Polipo
+	# This should be updated to be more generic (version-wise) and more Linux specific
+	cp ../README.Linux $(DOCSDIR)/README-TorBrowserBundle
+
+## Copy over Firefox
+install-firefox:
+	cp -R $(FIREFOX) $(APPDIR)
+	# Due to various issues with a broken libxml2, we'll remove these...
+	rm -f $(APPDIR)/Firefox/components/libnkgnomevfs.so
+	rm -f $(APPDIR)/Firefox/components/libmozgnome.so
+
+## Copy over Pidgin
+install-pidgin:
+ifeq ($(USE_PIDGIN),1)
+	cp -R $(PIDGIN) $(APPDIR)
+endif
+
+## Configure Firefox, Vidalia, Polipo and Tor
+configure-apps:
+	## Configure Firefox preferences
+	#mkdir -p $(DEST)/.mozilla/Firefox/firefox.default
+	cp -R $(CONFIG_SRC)/firefox-profiles.ini $(DEST)/Data/profiles.ini
+	cp $(CONFIG_SRC)/bookmarks.html $(DEST)/Data/profile
+	cp $(CONFIG_SRC)/no-polipo.js $(DEST)/Data/profile/prefs.js
+	## Configure Pidgin
+ifeq ($(USE_PIDGIN),1)
+	mkdir -p $(DEST)/PidginPortable/Data/settings/.purple
+	cp $(CONFIG_SRC)/prefs.xml $(DEST)/PidginPortable/Data/settings/.purple
+endif
+	## Configure Vidalia
+ifeq ($(USE_PIDGIN),1)
+	cp $(CONFIG_SRC)/vidalia.conf.ff+pidgin-linux $(DEST)/Data/Vidalia/vidalia.conf
+else
+	cp $(CONFIG_SRC)/vidalia.conf.ff-linux $(DEST)/Data/Vidalia/vidalia.conf
+endif
+	## Configure Polipo
+	#cp $(CONFIG_SRC)/polipo.conf $(DEST)/Data/Polipo/polipo.conf
+	## Configure Tor
+	cp $(CONFIG_SRC)/torrc-linux $(DEST)/Data/Tor/torrc
+	cp $(TOR_DIR)/src/config/geoip $(DEST)/Data/Tor/geoip
+	chmod 700 $(DEST)/Data/Tor
+
+# We've replaced the custom C program with a shell script for now...
+launcher:
+	cp ../src/RelativeLink/RelativeLink.sh $(DEST)/start-tor-browser
+	chmod +x $(DEST)/start-tor-browser
+
+strip-it-stripper:
+	strip $(APPDIR)/tor
+	#strip $(APPDIR)/polipo
+	strip $(APPDIR)/vidalia
+	strip $(LIBSDIR)/*.so*
+	strip $(LIBSDIR)/libz/*.so*
+
+##
+## How to create required extensions
+##
+
+## Torbutton development version
+#torbutton.xpi:
+#	$(WGET) -O $@ $(TORBUTTON)
+
+## NoScript development version
+noscript.xpi: 
+	$(WGET) -O $@ $(NOSCRIPT)
+
+## BetterPrivacy
+betterprivacy.xpi:
+	$(WGET) -O $@ $(BETTERPRIVACY)
+
+## HTTPS Everywhere
+httpseverywhere.xpi:
+	$(WGET) -O $@ --no-check-certificate $(HTTPSEVERYWHERE)
+
+## Generic language pack rule
+langpack_%.xpi:
+	$(WGET) -O $@ $(MOZILLA_LANGUAGE)/$*.xpi
+
+## English comes as default
+#langpack_en-US.xpi:
+#	touch $@
+
+##
+## Customize the bundle
+##
+
+bundle_%:
+	LANGCODE=$* make -f Makefile.linux bundle-localized
+compressed-bundle_%:
+	LANGCODE=$* make -f Makefile.linux compressed-bundle-localized
+
+bundle-localized_%.stamp:
+	make -f Makefile.linux copy-files_$* install-extensions install-betterprivacy install-lang-extensions patch-vidalia-language patch-firefox-language patch-pidgin-language update-extension-pref
+	touch bundle-localized_$*.stamp
+
+bundle-localized: bundle-localized_$(LANGCODE).stamp
+
+compressed-bundle-localized: bundle-localized_$(LANGCODE).stamp
+	-rm -f $(DISTDIR)/$(COMPRESSED_NAME)_$(LANGCODE).tar.gz
+	-mkdir $(DISTDIR)
+	tar -cvzf $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).tar.gz $(NAME)_$(LANGCODE);
+	rm *.zip *.xpi
+
+copy-files_%: generic-bundle.stamp
+	rm -fr $(NAME)_$*
+	#mkdir $(NAME)_$*
+	cp -r $(DEST) $(NAME)_$*
+
+BUNDLE=$(NAME)_$(LANGCODE)
+DUMMYPROFILE=$(BUNDLE)/.mozilla/
+
+## This is a little overcomplicated, but I'm keeping it here in case there are
+## extensions we want to use in the future
+install-extensions: $(DEFAULT_EXTENSIONS)
+	for extension in *.xpi; \
+		do \
+			cp $$extension $$extension.zip; \
+			ext_id=$$(unzip -p $$extension.zip install.rdf | sed -n '/<em:id>/{s#[^<]*<em:id>\(.*\)</em:id>#\1#p;q}'); \
+			mkdir -p $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id; \
+			cp $$extension $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id/$$extension.zip; \
+			(cd $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/$$ext_id/ && unzip *.zip && rm *.zip); \
+		done
+
+install-betterprivacy: betterprivacy.xpi
+	mkdir -p $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}
+	cp betterprivacy.xpi $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/betterprivacy.zip
+	(cd $(BUNDLE)/.mozilla/extensions/$(FF_VENDOR_ID)/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/ && unzip *.zip && rm *.zip);
+
+## Language extensions need to be handled differently from other extensions
+install-lang-extensions: $(filter-out langpack_en-US.xpi,langpack_$(LANGCODE).xpi)
+ifneq ($(LANGCODE), en-US)
+	mkdir -p $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org
+	cp langpack_$(LANGCODE).xpi $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/langpack_$(LANGCODE).zip
+	(cd $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org && unzip *.zip && rm *.zip)
+endif
+
+## Set the language for Vidalia
+patch-vidalia-language:
+	## Patch Vidalia
+	./patch-vidalia-language.sh $(BUNDLE)/Data/Vidalia/vidalia.conf $(LANGCODE) -e
+
+## Set the language for Pidgin
+patch-pidgin-language:
+	## Patch Pidgin
+ifeq ($(USE_PIDGIN),1)
+	./patch-pidgin-language.sh $(BUNDLE)/PidginPortable/Data/settings/PidginPortableSettings.ini $(LANGCODE) \
+                                   $(BUNDLE)/PidginPortable/App/Pidgin/locale \
+                                   $(BUNDLE)/PidginPortable/App/GTK/share/locale
+endif
+
+patch-firefox-language:
+	## Patch the default Firefox prefs.js
+	## Don't use {} because they aren't always interpreted correctly. Thanks, sh. 
+	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/App/Firefox/defaults/profile/
+	cp $(CONFIG_SRC)/no-polipo.js $(BUNDLE)/App/Firefox/defaults/profile/prefs.js
+	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/Data/profile
+	cp $(CONFIG_SRC)/no-polipo.js $(BUNDLE)/Data/profile/prefs.js
+	./patch-firefox-language.sh $(BUNDLE)/App/Firefox/defaults/profile/prefs.js $(LANGCODE) -e
+	./patch-firefox-language.sh $(BUNDLE)/Data/profile/prefs.js $(LANGCODE) -e
+
+## Fix prefs.js since extensions.checkCompatibility, false doesn't work
+update-extension-pref:
+	ext_ver=$$(sed -n '/em:version/{s,.*="\(.*\)".*,\1,p;q}' $(BUNDLE)/Data/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/install.rdf); \
+	sed -i -e "s/SHPONKA/langpack-$(LANGCODE)@firefox.mozilla.org:$$ext_ver/g" $(BUNDLE)/Data/profile/prefs.js
+
diff --git a/build-scripts/osx.mk b/build-scripts/osx.mk
new file mode 100644
index 0000000..773e205
--- /dev/null
+++ b/build-scripts/osx.mk
@@ -0,0 +1,527 @@
+###
+### Makefile for building Tor USB bundle on Mac OS X
+###
+### Copyright 2007 Steven J. Murdoch <http://www.cl.cam.ac.uk/users/sjm217/>
+### Copyright 2009, 2010 Jacob Appelbaum <jacob at appelbaum.net>
+### Copyright 2010 Erinn Clark <erinn at torproject.org>
+###
+### You want to do the following currently supported activities:
+# This downloads and compiles everything
+### make -f Makefile.osx build-all-binaries
+# This makes a generic bundle
+### make -f Makefile.osx generic-bundle
+# This makes the English bundle
+### make -f Makefile.osx bundle_en-US
+# This makes the German bundle
+### make -f Makefile.osx bundle_de
+# This makes the German compressed bundle
+### make -f Makefile.osx compressed-bundle_de 
+# It's possible you may also want to do:
+### make -f Makefile.osx build-all-binaries
+### make -f Makefile.osx all-compressed-bundles
+### ...
+### Look in tbbosx-dist/ for your files.
+###
+### See LICENSE for licensing information
+###
+### $Id: Makefile 19973 2009-07-12 02:26:03Z phobos $
+###
+
+#####################
+### Configuration ###
+#####################
+
+## Architecture
+ARCH_TYPE=$(shell uname -m)
+
+## Location of directory for source unpacking
+FETCH_DIR=/build
+## Location of directory for prefix/destdir/compiles/etc
+BUILT_DIR=$(FETCH_DIR)/built
+TBB_FINAL=$(BUILT_DIR)/TBBL
+
+## Versions for our source packages
+HTTPSEVERY_VER=0.9.9.development.2
+FIREFOX_VER=3.6.13
+LIBEVENT_VER=1.4.13-stable
+LIBPNG_VER=1.4.3
+NOSCRIPT_VER=2.0.7
+OPENSSL_VER=0.9.8p
+OTR_VER=3.2.0
+PIDGIN_VER=2.6.4
+POLIPO_VER=1.0.4.1
+QT_VER=4.6.2
+TOR_VER=0.2.2.20-alpha
+TORBUTTON_VER=1.2.5
+VIDALIA_VER=0.2.10
+ZLIB_VER=1.2.3
+
+## Extension IDs
+FF_VENDOR_ID:=\{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
+
+## File names for the source packages
+ZLIB_PACKAGE=zlib-$(ZLIB_VER).tar.gz
+OPENSSL_PACKAGE=openssl-$(OPENSSL_VER).tar.gz
+QT_PACKAGE=qt-everywhere-opensource-src-$(QT_VER).tar.gz
+VIDALIA_PACKAGE=vidalia-$(VIDALIA_VER).tar.gz
+LIBEVENT_PACKAGE=libevent-$(LIBEVENT_VER).tar.gz
+TOR_PACKAGE=tor-$(TOR_VER).tar.gz
+POLIPO_PACKAGE=polipo-$(POLIPO_VER).tar.gz
+PIDGIN_PACKAGE=pidgin-$(PIDGIN_VER).tar.bz2
+FIREFOX_PACKAGE=firefox-$(FIREFOX_VER).tar.bz2
+
+## Location of files for download
+ZLIB_URL=http://www.gzip.org/zlib/$(ZLIB_PACKAGE)
+OPENSSL_URL=http://www.openssl.org/source/$(OPENSSL_PACKAGE)
+QT_URL=ftp://ftp.qt.nokia.com/qt/source/$(QT_PACKAGE)
+VIDALIA_URL=http://www.torproject.org/vidalia/dist/$(VIDALIA_PACKAGE)
+LIBEVENT_URL=http://www.monkey.org/~provos/$(LIBEVENT_PACKAGE)
+TOR_URL=http://www.torproject.org/dist/$(TOR_PACKAGE)
+POLIPO_URL=http://freehaven.net/~chrisd/polipo/$(POLIPO_PACKAGE)
+PIDGIN_URL=http://sourceforge.net/projects/pidgin/files/Pidgin/$(PIDGIN_PACKAGE)
+#FIREFOX_URL=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(FIREFOX_VER)/linux-i686/en-US/$(FIREFOX_PACKAGE)
+
+fetch-source:
+	-mkdir $(FETCH_DIR)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(ZLIB_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(OPENSSL_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(VIDALIA_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(LIBEVENT_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(TOR_URL)
+	$(WGET) --directory-prefix=$(FETCH_DIR) $(POLIPO_URL)
+
+unpack-source:
+	cd $(FETCH_DIR) && tar -xvzf $(ZLIB_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(OPENSSL_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(VIDALIA_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(LIBEVENT_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(TOR_PACKAGE)
+	cd $(FETCH_DIR) && tar -xvzf $(POLIPO_PACKAGE)
+
+source-dance: fetch-source unpack-source
+	echo "We're ready for building now."
+
+ZLIB_DIR=$(FETCH_DIR)/zlib-$(ZLIB_VER)
+ZLIB_OPTS=--shared --prefix=$(BUILT_DIR)
+build-zlib:
+	cd $(ZLIB_DIR) && ./configure $(ZLIB_OPTS)
+	cd $(ZLIB_DIR) && make
+	cd $(ZLIB_DIR) && make install
+
+OPENSSL_DIR=$(FETCH_DIR)/openssl-$(OPENSSL_VER)
+OPENSSL_OPTS=-no-idea -no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -I$(BUILT_DIR)/lib
+build-openssl:
+	cd $(OPENSSL_DIR) && ./config $(OPENSSL_OPTS)
+	cd $(OPENSSL_DIR) && make depend
+	cd $(OPENSSL_DIR) && CC=/usr/bin/gcc-4.0 \
+	CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk" \
+	LDFLAGS="-syslibroot /Developer/SDKs/MacOSX10.5.sdk" make
+	cd $(OPENSSL_DIR) && make install
+
+QT_DIR=$(FETCH_DIR)/qt-everywhere-opensource-src-$(QT_VER)
+QT_BUILD_PREFS=-qt-zlib -universal -confirm-license -opensource -openssl-linked -no-qt3support \
+	-fast -release -no-framework -nomake demos -nomake examples -sdk /Developer/SDKs/MacOSX10.4u.sdk/
+QT_OPTS=$(QT_BUILD_PREFS) -prefix $(BUILT_DIR) -I $(BUILT_DIR)/include -I $(BUILT_DIR)/include/openssl/ -L $(BUILT_DIR)/lib
+build-qt:
+	cd $(QT_DIR) && ./configure $(QT_OPTS)
+	cd $(QT_DIR) && make -j2
+	cd $(QT_DIR) && make install
+
+VIDALIA_DIR=$(FETCH_DIR)/vidalia-$(VIDALIA_VER)
+VIDALIA_OPTS=-DOSX_TIGER_COMPAT=1 -DCMAKE_OSX_ARCHITECTURES=i386 -DOPENSSL_LIBRARY_DIR=$(BUILT_DIR)/lib -DCMAKE_BUILD_TYPE=debug ..
+build-vidalia:
+	export MACOSX_DEPLOYMENT_TARGET=10.4
+	-mkdir $(VIDALIA_DIR)/build
+	cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) \
+	&& make && make dist-osx-libraries
+	cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install
+
+LIBEVENT_DIR=$(FETCH_DIR)/libevent-$(LIBEVENT_VER)
+LIBEVENT_CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386"
+LIBEVENT_LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+LIBEVENT_OPTS=--prefix=$(BUILT_DIR) --enable-static --disable-shared --disable-dependency-tracking CC="gcc-4.0"
+build-libevent:
+	cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) LDFLAGS=$(LIBEVENT_LDFLAGS) ./configure $(LIBEVENT_OPTS)
+	cd $(LIBEVENT_DIR) && make -j2
+	cd $(LIBEVENT_DIR) && make install
+
+TOR_DIR=$(FETCH_DIR)/tor-$(TOR_VER)
+TOR_CFLAGS="-O -g -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386"
+TOR_LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+TOR_OPTS=--with-openssl-dir=$(BUILT_DIR) --with-zlib-dir=$(BUILT_DIR) --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) CC="gcc-4.0"
+build-tor:
+	cd $(TOR_DIR) && CFLAGS=$(TOR_CFLAGS) LDFLAGS=$(TOR_LDFLAGS) ./configure $(TOR_OPTS)
+	cd $(TOR_DIR) && make $(MAKEFLAGS)
+	cd $(TOR_DIR) && make install
+
+## Polipo doesn't use autoconf, so we just have to hack their Makefile
+## This probably needs to be updated if Polipo ever updates their Makefile
+POLIPO_DIR=$(FETCH_DIR)/polipo-$(POLIPO_VER)
+POLIPO_MAKEFILE=$(CONFIG_SRC)/polipo-Makefile
+build-polipo:
+	cp $(POLIPO_MAKEFILE) $(POLIPO_DIR)/Makefile
+	cd $(POLIPO_DIR) && make CFLAGS="-mmacosx-version-min=10.4" \
+	&& PREFIX=$(FETCH_DIR)/built/ make install.binary
+
+build-pidgin:
+	echo "We're not building pidgin yet!"
+
+build-firefox:
+	echo "We're using a prebuilt firefox. Fix this someday!"
+
+build-all-binaries: build-zlib build-openssl build-vidalia build-libevent build-tor build-polipo
+	echo "If we're here, we've done something right."
+
+## Location of compiled libraries
+COMPILED_LIBS=$(BUILT_DIR)/lib
+## Location of compiled binaries
+COMPILED_BINS=$(BUILT_DIR)/bin/
+
+## Location of the libraries we've built
+QT=$(COMPILED_LIBS)
+OPENSSL=$(COMPILED_LIBS)
+ZLIB=$(COMPILED_LIBS)
+LIBEVENT=$(COMPILED_LIBS)
+
+## Location of binary bundle components
+VIDALIA=$(BUILT_DIR)/usr/local/bin/Vidalia.app/
+TOR=$(COMPILED_BINS)/tor
+POLIPO=$(COMPILED_BINS)/polipo
+## Someday, this will be our custom Firefox
+FIREFOX=$(FETCH_DIR)/Firefox.app
+PIDGIN=$(COMPILED_BINS)/pidgin
+
+## Location of utility applications
+WGET:=$(shell which wget)
+
+## Size of split archive volumes for WinRAR
+SPLITSIZE=1440k
+
+## Location of config files
+CONFIG_SRC=config
+
+## Destination for the generic bundle
+DEST=generic-bundle
+
+## Name of the bundle
+NAME=TorBrowser
+
+## Where shall we put the finished files for distribution?
+DISTDIR=tbbosx-dist
+
+## Version and name of the compressed bundle (also used for source)
+VERSION=1.0.9-dev
+DEFAULT_COMPRESSED_BASENAME=TorBrowser-$(VERSION)-osx-$(ARCH_TYPE)-
+IM_COMPRESSED_BASENAME=TorBrowser-IM-$(VERSION)-
+DEFAULT_COMPRESSED_NAME=$(DEFAULT_COMPRESSED_BASENAME)
+IM_COMPRESSED_NAME=$(IM_COMPRESSED_BASENAME)$(VERSION)
+
+ifeq ($(USE_PIDGIN),1)
+COMPRESSED_NAME=$(IM_COMPRESSED_NAME)
+else
+COMPRESSED_NAME=$(DEFAULT_COMPRESSED_NAME)
+endif
+
+## Extensions to install by default
+DEFAULT_EXTENSIONS=torbutton.xpi
+
+## Where to download Torbutton from
+TORBUTTON=https://www.torproject.org/torbutton/releases/torbutton-$(TORBUTTON_VER).xpi
+NOSCRIPT=https://secure.informaction.com/download/releases/noscript-$(NOSCRIPT_VER).xpi
+BETTERPRIVACY=https://addons.mozilla.org/en-US/firefox/downloads/latest/6623/addon-6623-latest.xpi
+HTTPSEVERYWHERE=https://eff.org/files/https-everywhere-$(HTTPSEVERY_VER).xpi
+## Where to download Mozilla language packs
+MOZILLA_LANGUAGE=http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/mac/xpi
+
+## Put more extensions here
+EXTENSIONS_DIR=extensions
+
+## Local overrides
+-include local.makefile
+
+#############
+### Rules ###
+#############
+
+##
+## Default rule
+##
+
+#bundle: bundle_en-US
+bundle: bundle_en-US
+
+all-bundles-both:
+	USE_PIDGIN=1 make -f Makefile.osx all-bundles
+	make -f Makefile.osx clean
+	USE_PIDGIN=0 make -f Makefile.osx all-bundles
+	make -f Makefile.osx clean
+	USE_SANDBOX=1 make -f Makefile.osx all-bundles
+	make -f Makefile.osx clean
+	USE_SANDBOX=0 make -f Makefile.osx all-bundles
+	make -f Makefile.osx clean
+
+all-bundles: all-compressed-bundles
+
+all-compressed-bundles: compressed-bundle_ar \
+	compressed-bundle_de \
+	compressed-bundle_en-US \
+	compressed-bundle_es-ES \
+	compressed-bundle_fa \
+	compressed-bundle_fr \
+	compressed-bundle_nl \
+	compressed-bundle_pl \
+	compressed-bundle_pt-PT \
+	compressed-bundle_ru \
+	compressed-bundle_zh-CN \
+	compressed-bundle_it
+
+##
+## Cleanup
+##
+
+clean:
+	rm -fr $(DISTDIR)
+	rm -fr *.app
+	rm -fr $(DEST) *.stamp
+	rm -f *~
+	rm -fr *.xpi *.jar *.zip
+	rm -fr $(NAME)_*
+	cd ../src/RelativeLink/ && $(MAKE) clean
+
+##
+## Generate a non-localized bundle and put in $(DEST)
+##
+
+## Install binaries, documentation, FirefoxPortable, PidginPortable, and launcher into $(DEST)
+generic-bundle.stamp:
+	make -f Makefile.osx generic-bundle
+generic-bundle: directory-structure install-binaries install-docs install-firefox install-pidgin configure-apps launcher strip-it-stripper
+	touch generic-bundle.stamp
+
+APPDIR=$(DEST)/Contents/MacOS
+LIBSDIR=$(DEST)/Contents/Frameworks
+DOCSDIR=$(DEST)/Contents/Resources/Docs
+DATADIR=$(DEST)/Contents/Resources/Data
+TB_TMPDIR=$(DEST)/Contents/SharedSupport
+
+## Build directory structure
+directory-structure: 
+	rm -fr $(DEST)
+	mkdir -p $(APPDIR)
+	mkdir -p $(APPDIR)/Firefox.app/Contents/MacOS/Data/profile
+	mkdir -p $(APPDIR)/Firefox.app/Contents/MacOS/Data/plugins
+	mkdir -p $(LIBSDIR)
+	mkdir -p $(DATADIR)/Tor
+	mkdir -p $(DATADIR)/Vidalia
+	mkdir -p $(DATADIR)/Polipo
+	mkdir -p $(DOCSDIR)
+	mkdir -p $(TB_TMPDIR)
+
+## Package up all the Vidalia and Tor pre-requisites
+## Firefox and Pidgin are installed in their own targets
+install-binaries: 
+	# zlib
+	cp -R $(ZLIB)/libz.1.2.3.dylib $(ZLIB)/libz.1.dylib $(ZLIB)/libz.dylib $(LIBSDIR)
+	# Libevent
+	cp -R $(LIBEVENT)/libevent.a  $(LIBEVENT)/libevent_core.a $(LIBEVENT)/libevent_extra.a \
+	   $(LIBEVENT)/libevent.la $(LIBEVENT)/libevent_core.la $(LIBEVENT)/libevent_extra.la $(LIBSDIR)
+	# OpenSSL
+	cp -R $(OPENSSL)/libcrypto.dylib $(OPENSSL)/libcrypto.0.9.8.dylib $(OPENSSL)/libssl.dylib \
+	   $(OPENSSL)/libssl.0.9.8.dylib $(LIBSDIR)
+	#cp -R $(OPENSSL)/libcrypto* $(OPENSSL)/libssl* $(LIBSDIR)
+	# Vidalia
+	cp -R $(VIDALIA) $(APPDIR)/Vidalia.app
+	# Polipo
+	cp $(POLIPO) $(APPDIR)
+	# Tor (perhaps we want tor-resolve too?)
+	cp $(TOR) $(APPDIR)
+
+## Fixup
+## Collect up license files
+install-docs:
+	mkdir -p $(DOCSDIR)/Vidalia
+	mkdir -p $(DOCSDIR)/Tor
+	mkdir -p $(DOCSDIR)/Qt
+	mkdir -p $(DOCSDIR)/Polipo
+	cp $(VIDALIA_DIR)/LICENSE* $(VIDALIA_DIR)/CREDITS $(DOCSDIR)/Vidalia
+	cp $(TOR_DIR)/LICENSE $(TOR_DIR)/README $(DOCSDIR)/Tor
+	cp $(QT_DIR)/LICENSE.GPL* $(QT_DIR)/LICENSE.LGPL $(DOCSDIR)/Qt
+	cp $(POLIPO_DIR)/COPYING  $(POLIPO_DIR)/README $(DOCSDIR)/Polipo
+	cp ../LICENSE $(DEST)
+	cp ../README.OSX $(DEST)/README-TorBrowserBundle
+
+## Copy over Firefox
+install-firefox:
+	cp -R $(FIREFOX) $(APPDIR)
+	# Due to various issues with a broken libxml2, we'll remove these...
+	#rm -f $(APPDIR)/Firefox/components/libnkgnomevfs.so
+	#rm -f $(APPDIR)/Firefox/components/libmozgnome.so
+
+## Copy over Pidgin
+install-pidgin:
+ifeq ($(USE_PIDGIN),1)
+	cp -R $(PIDGIN) $(APPDIR)
+endif
+
+## Configure Firefox, Vidalia, Polipo and Tor
+configure-apps:
+	## Configure Firefox preferences
+	#mkdir -p $(DEST)/.mozilla/Firefox/firefox.default
+	cp -R $(CONFIG_SRC)/firefox-profiles.ini $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profiles.ini
+	cp $(CONFIG_SRC)/bookmarks.html $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profile
+	cp $(CONFIG_SRC)/prefs.js $(DEST)/Contents/MacOS/Firefox.app/Contents/MacOS/Data/profile/prefs.js
+	cp $(CONFIG_SRC)/Info.plist $(DEST)/Contents
+	cp $(CONFIG_SRC)/PkgInfo $(DEST)/Contents
+	cp $(CONFIG_SRC)/qt.conf $(DEST)/Contents/Resources
+	cp $(CONFIG_SRC)/vidalia.icns $(DEST)/Contents/Resources
+	## Configure Pidgin
+ifeq ($(USE_PIDGIN),1)
+	mkdir -p $(DEST)/PidginPortable/Data/settings/.purple
+	cp $(CONFIG_SRC)/prefs.xml $(DEST)/PidginPortable/Data/settings/.purple
+endif
+	## Configure Vidalia
+	mkdir -p $(DEST)/Library/Vidalia
+ifeq ($(USE_SANDBOX),1)
+	cp $(CONFIG_SRC)/vidalia.conf.ff-osx-sandbox $(DEST)/Library/Vidalia/vidalia.conf
+else
+	cp $(CONFIG_SRC)/vidalia.conf.ff-osx $(DEST)/Library/Vidalia/vidalia.conf
+endif
+	## Configure Polipo
+	cp $(CONFIG_SRC)/polipo.conf $(DEST)/Contents/Resources/Data/Polipo/polipo.conf
+	## Configure Tor
+	#cp $(CONFIG_SRC)/torrc-osx $(DEST)/Contents/Resources/Data/Tor/torrc
+	cp $(CONFIG_SRC)/torrc-osx $(DEST)/Library/Vidalia/torrc
+	cp $(TOR_DIR)/src/config/geoip $(DEST)/Contents/Resources/Data/Tor/geoip
+	chmod 700 $(DATADIR)/Tor
+
+# We've replaced the custom C program with a shell script for now...
+launcher:
+	cp ../src/RelativeLink/RelativeLinkOSX.sh $(DEST)/Contents/MacOS/TorBrowserBundle
+	chmod +x $(DEST)/Contents/MacOS/TorBrowserBundle
+
+strip-it-stripper:
+	strip $(APPDIR)/tor
+	strip $(APPDIR)/polipo
+	strip $(APPDIR)/Vidalia.app/Contents/MacOS/Vidalia
+	#strip $(LIBSDIR)/*
+
+##
+## How to create required extensions
+##
+
+## Torbutton development version
+torbutton.xpi:
+	$(WGET) --no-check-certificate -O $@ $(TORBUTTON)
+
+## BetterPrivacy
+betterprivacy.xpi:
+	$(WGET) --no-check-certificate -O $@ $(BETTERPRIVACY)
+
+## NoScript development version
+noscript.xpi: 
+	$(WGET) --no-check-certificate -O $@ $(NOSCRIPT)
+
+## HTTPS Everywhere
+httpseverywhere.xpi:
+	$(WGET) --no-check-certificate -O $@ $(HTTPSEVERYWHERE)
+
+## Generic language pack rule
+langpack_%.xpi:
+	$(WGET) --no-check-certificate -O $@ $(MOZILLA_LANGUAGE)/$*.xpi
+
+## English comes as default
+#langpack_en-US.xpi:
+#	touch $@
+
+##
+## Customize the bundle
+##
+
+bundle_%:
+	LANGCODE=$* make -f Makefile.osx bundle-localized
+compressed-bundle_%:
+	LANGCODE=$* make -f Makefile.osx compressed-bundle-localized
+bundle-localized_%.stamp:
+	make -f Makefile.osx copy-files_$* install-extensions install-betterprivacy install-httpseverywhere install-noscript install-lang-extensions patch-vidalia-language patch-firefox-language patch-pidgin-language update-extension-pref final
+	touch bundle-localized_$*.stamp
+
+bundle-localized: bundle-localized_$(LANGCODE).stamp
+
+compressed-bundle-localized: bundle-localized_$(LANGCODE).stamp
+	-rm -f $(DISTDIR)/$(COMPRESSED_NAME)_$(LANGCODE).zip
+	-mkdir $(DISTDIR)
+	#hdiutil create -volname "Tor Browser Bundle for OS X" -format UDBZ -imagekey zlib-level=9 -srcfolder $(DISTDIR)/tmp/ $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).dmg
+	zip -r $(DISTDIR)/$(DEFAULT_COMPRESSED_BASENAME)$(LANGCODE).zip $(NAME)_$(LANGCODE).app
+	rm *.zip *.xpi
+
+copy-files_%: generic-bundle.stamp
+	rm -fr $(NAME)_$*
+	#mkdir $(NAME)_$*
+	cp -r $(DEST) $(NAME)_$*
+
+BUNDLE=$(NAME)_$(LANGCODE)
+DUMMYPROFILE=$(BUNDLE)/Library
+
+## This is a little overcomplicated, but I'm keeping it here in case there are
+## extensions we want to use in the future
+install-extensions: $(DEFAULT_EXTENSIONS)
+	for extension in torbutton.xpi; \
+		do \
+			cp $$extension $$extension.zip; \
+			ext_id=$$(unzip -p $$extension.zip install.rdf | sed -n '/<em:id>/{s#[^<]*<em:id>\(.*\)</em:id>#\1#p;q;}'); \
+			mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id; \
+			cp $$extension $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id/$$extension.zip; \
+			(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/$$ext_id/ && unzip *.zip && rm *.zip); \
+		done
+
+## Language extensions need to be handled differently from other extensions
+install-lang-extensions: $(filter-out langpack_en-US.xpi,langpack_$(LANGCODE).xpi)
+ifneq ($(LANGCODE), en-US)
+	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org
+	cp langpack_$(LANGCODE).xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/langpack_$(LANGCODE).zip
+	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org && unzip *.zip && rm *.zip)
+endif
+
+install-betterprivacy: betterprivacy.xpi
+	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}
+	cp betterprivacy.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\}/betterprivacy.zip
+	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{d40f5e7b-d2cf-4856-b441-cc613eeffbe3\} && unzip *.zip && rm *.zip)
+	
+install-httpseverywhere: httpseverywhere.xpi
+	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org
+	cp httpseverywhere.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org/httpseverywhere.zip
+	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/https-everywhere at eff.org && unzip *.zip && rm *.zip)
+	
+install-noscript: noscript.xpi
+	mkdir -p $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\}
+	cp noscript.xpi $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\}/noscript.zip
+	(cd $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/\{73a6fe31-595d-460b-a920-fcc0f8843232\} && unzip *.zip && rm *.zip)
+
+## Set the language for Vidalia
+patch-vidalia-language:
+	## Patch Vidalia
+	./patch-vidalia-language.sh $(BUNDLE)/Library/Vidalia/vidalia.conf $(LANGCODE) -e
+
+## Set the language for Pidgin
+patch-pidgin-language:
+	## Patch Pidgin
+ifeq ($(USE_PIDGIN),1)
+	./patch-pidgin-language.sh $(BUNDLE)/PidginPortable/Data/settings/PidginPortableSettings.ini $(LANGCODE) \
+                                   $(BUNDLE)/PidginPortable/App/Pidgin/locale \
+                                   $(BUNDLE)/PidginPortable/App/GTK/share/locale
+endif
+
+patch-firefox-language:
+	## Patch the default Firefox prefs.js
+	## Don't use {} because they aren't always interpreted correctly. Thanks, sh. 
+	cp $(CONFIG_SRC)/prefs.js $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
+	cp $(CONFIG_SRC)/bookmarks.html $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile
+	./patch-firefox-language.sh $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js $(LANGCODE) -e
+
+## Fix prefs.js since extensions.checkCompatibility, false doesn't work
+update-extension-pref:
+	ext_ver=$$(sed -n '/em:version/{s,.*="\(.*\)".*,\1,p;q;}' $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)@firefox.mozilla.org/install.rdf); \
+	sed -i -e "s/SHPONKA/langpack-$(LANGCODE)@firefox.mozilla.org:$$ext_ver/g" $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
+
+final: 
+	mv $(BUNDLE) $(BUNDLE).app
-- 
1.7.1



More information about the tor-commits mailing list