[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r13362: Handle creation of non-English Tor Browser Bundles (needs mo (torbrowser/trunk/build-scripts)
Author: sjm217
Date: 2008-02-02 13:54:01 -0500 (Sat, 02 Feb 2008)
New Revision: 13362
Modified:
torbrowser/trunk/build-scripts/Makefile
Log:
Handle creation of non-English Tor Browser Bundles (needs more work)
Modified: torbrowser/trunk/build-scripts/Makefile
===================================================================
--- torbrowser/trunk/build-scripts/Makefile 2008-02-02 18:52:37 UTC (rev 13361)
+++ torbrowser/trunk/build-scripts/Makefile 2008-02-02 18:54:01 UTC (rev 13362)
@@ -7,6 +7,10 @@
### $Id$
###
+#####################
+### Configuration ###
+#####################
+
## Location of required libraries
MING=/c/MinGW/bin
QT=/c/Qt/4.3.2/bin
@@ -24,65 +28,90 @@
## Location of config files
CONFIG_SRC=config
-## Destination directories for binaries and documentation
-BINARIES=binaries
-DOCS=docs
+## Destination for the generic bundle
+DEST="Generic Bundle"
-## Destination for bundle
-DEST="Tor Browser"
+## Name of the bundle"
+NAME="Tor Browser"
-all:
- echo "Nothing to do"
+## Extensions to install by default
+DEFAULT_EXTENSIONS=torbutton.xpi
+## Put more extensions here
+EXTENSIONS_DIR=extensions
+
+#############
+### Rules ###
+#############
+
+##
+## Default rule
+##
+
+bundle: bundle_en
+
+all-bundles: bundle_en bundle_de bundle_es-ES bundle_fr bundle_nl \
+ bundle_pt-PT bundle_ru bundle zh-CN
+
+##
+## Cleanup
+##
+
+clean:
+ rm -fr $(DEST)
+ rm -f *~
+ rm -fr $(DEST) $(BINARIES) $(DOCS)
+ rm -f "Tor Browser.exe"
+
+##
+## Generate a non-localized bundle and put in $(DEST)
+##
+
+## Install binaries, documentation, FirefoxPortable and launcher into $(DEST)
+$(DEST): directory-structure install-binaries install-docs install-firefoxportable configure-apps launcher
+
+APPDIR=$(DEST)/App
+DOCSDIR=$(DEST)/Docs
+DATADIR=$(DEST)/Data
+
+## Build directory structure
+directory-structure:
+ rm -fr $(DEST)
+ mkdir -p $(APPDIR)
+ mkdir -p $(DATADIR)/Tor
+ mkdir -p $(DATADIR)/Vidalia
+ mkdir -p $(DATADIR)/Polipo
+ mkdir -p $(DOCSDIR)
+
## Package up all the Vidalia and Tor pre-requisites
## Filenames extracted using Dependency Walker <http://www.dependencywalker.com/>
-install-binaries:
- rm -fr $(BINARIES)
- mkdir $(BINARIES)
- cp $(MING)/mingwm10.dll $(BINARIES)
+install-binaries:
+ cp $(MING)/mingwm10.dll $(APPDIR)
cp $(QT)/QtCore4.dll $(QT)/QtGui4.dll \
- $(QT)/QtNetwork4.dll $(QT)/QtXml4.dll $(BINARIES)
- cp $(VIDALIA)/src/vidalia/vidalia.exe $(BINARIES)
- cp $(POLIPO)/polipo.exe $(BINARIES)
- cp $(TOR)/src/or/tor.exe $(TOR)/src/tools/tor-resolve.exe $(BINARIES)
+ $(QT)/QtNetwork4.dll $(QT)/QtXml4.dll $(APPDIR)
+ cp $(VIDALIA)/src/vidalia/vidalia.exe $(APPDIR)
+ cp $(POLIPO)/polipo.exe $(APPDIR)
+ cp $(TOR)/src/or/tor.exe $(TOR)/src/tools/tor-resolve.exe $(APPDIR)
## Collect up license files
install-docs:
- rm -fr $(DOCS)
- mkdir -p $(DOCS)/vidalia
- mkdir -p $(DOCS)/tor
- mkdir -p $(DOCS)/qt
- mkdir -p $(DOCS)/mingw
- mkdir -p $(DOCS)/polipo
- cp $(VIDALIA)/LICENSE $(VIDALIA)/COPYING $(VIDALIA)/AUTHORS $(QT)/../LICENSE.GPL $(DOCS)/vidalia
- cp $(TOR)/LICENSE $(TOR)/AUTHORS $(TOR)/README $(DOCS)/tor
- cp $(QT)/../LICENSE.GPL $(DOCS)/qt
- cp $(MING)/../COPYING $(DOCS)/mingw
- cp $(POLIPO)/COPYING $(POLIPO)/README $(DOCS)/polipo
+ mkdir -p $(DOCSDIR)/Vidalia
+ mkdir -p $(DOCSDIR)/Tor
+ mkdir -p $(DOCSDIR)/Qt
+ mkdir -p $(DOCSDIR)/MinGW
+ mkdir -p $(DOCSDIR)/Polipo
+ cp $(VIDALIA)/LICENSE $(VIDALIA)/COPYING $(VIDALIA)/AUTHORS $(QT)/../LICENSE.GPL $(DOCSDIR)/Vidalia
+ cp $(TOR)/LICENSE $(TOR)/AUTHORS $(TOR)/README $(DOCSDIR)/Tor
+ cp $(QT)/../LICENSE.GPL $(DOCSDIR)/Qt
+ cp $(MING)/../COPYING $(DOCSDIR)/MinGW
+ cp $(POLIPO)/COPYING $(POLIPO)/README $(DOCSDIR)/Polipo
-TORBUTTON=torbutton-1.1.12-alpha.xpi
-$(TORBUTTON):
- $(WGET) http://torbutton.torproject.org/dev/releases/$(TORBUTTON)
+## Copy over FirefoxPortable
+install-firefoxportable:
+ cp -R $(FIREFOX_SRC) $(DEST)/FirefoxPortable
-bundle: package-files install-torbutton patch-language launcher
-
-launcher:
- echo 'start /b .\\App\\vidalia.exe --datadir .\\Data\\Vidalia\\' > $(DEST)/"Start Tor Browser.bat"
-
-## This dummy profile is created just for installing extensions, otherwise Firefox
-## will output files in the default one
-DUMMYPROFILE=$(DEST)/FirefoxPortable/App/DummyProfile
-
-package-files: install-binaries install-docs $(TORBUTTON)
- ## Build directory structure
- rm -fr $(DEST)
- mkdir -p $(DEST)/App
- mkdir -p $(DEST)/Data/Tor
- mkdir -p $(DEST)/Data/Vidalia
- mkdir -p $(DEST)/Data/Polipo
- mkdir -p $(DEST)/Docs
- ## Copy over Firefox Portable
- cp -R $(FIREFOX_SRC) $(DEST)/FirefoxPortable
+## Configure Firefox, FirefoxPortable, Vidalia, Polipo and Tor
+configure-apps:
## Configure Firefox preferences
cp $(CONFIG_SRC)/prefs.js $(DEST)/FirefoxPortable/App/DefaultData/profile/
cp $(CONFIG_SRC)/user.js $(DEST)/FirefoxPortable/App/DefaultData/profile/
@@ -92,80 +121,81 @@
## Configure Vidalia
cp $(CONFIG_SRC)/vidalia.conf $(DEST)/Data/Vidalia
## Configure Polipo
- cp $(CONFIG_SRC)/polipo.conf $(DEST)/Data/Polipo/polipo.conf
+ cp $(CONFIG_SRC)/polipo.conf $(DEST)/Data/Polipo
## Configure Tor
cp $(CONFIG_SRC)/torrc $(DEST)/Data/Tor
- ## Copy over Vidalia, Tor and Polipo
- cp -R $(BINARIES)/* $(DEST)/App
- ## Copy over documentation
- cp -R $(DOCS)/* $(DEST)/Docs
-## Install torbutton (TODO: add -no-remote if Firefox is running?)
-install-torbutton:
- ## Make a dummy profile to stop Firefox creating some large files
- cp -R $(DEST)/FirefoxPortable/App/DefaultData $(DUMMYPROFILE)
- $(DEST)/FirefoxPortable/App/firefox/firefox.exe \
- -profile $(DUMMYPROFILE) \
- -install-global-extension $(TORBUTTON)
- rm -fr $(DUMMYPROFILE)
+launcher:
+ echo 'start /b .\\App\\vidalia.exe --datadir .\\Data\\Vidalia\\' > $(DEST)/"Start Tor Browser.bat"
-## Install Quick Locale Switcher extension
-install-qls: quick_locale_switcher.xpi
- ## Make a dummy profile to stop Firefox creating some large files
- cp -R $(DEST)/FirefoxPortable/App/DefaultData $(DUMMYPROFILE)
- $(DEST)/FirefoxPortable/App/firefox/firefox.exe \
- -profile $(DUMMYPROFILE) \
- -install-global-extension $<
- rm -fr $(DUMMYPROFILE)
+##
+## How to create required extensions
+##
-## Download language packs
+## Torbutton development version
+TORBUTTON=torbutton-1.1.12-alpha.xpi
+torbutton.xpi:
+ $(WGET) -O $@ http://torbutton.torproject.org/dev/releases/$(TORBUTTON)
+
+## Generic language pack rule
+langpack_%.xpi:
+ $(WGET) -O $@ http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.11/win32/xpi/%.xpi
+## Persian isn't a supported language by Firefox yet
langpack_fa.xpi:
$(WGET) -O $@ https://addons.mozilla.org/en-US/firefox/downloads/file/18157/persian_language_pack-2.0.0.6-fx.xpi
+## English comes as default
+langpack_en.xpi:
+ touch $@
-langpack_zh-cn.xpi:
- $(WGET) -O $@ http://releases.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.11/win32/xpi/zh-CN.xpi
-
## Download Quick Locale Switcher
quick_locale_switcher.xpi:
$(WGET) -O $@ https://addons.mozilla.org/en-US/firefox/downloads/file/20672/quick_locale_switcher-1.6.3.7-fx+mz+tb+sb+nvu+ns+sm+fl.xpi
-## Set the language for Vidalia and Firefox
-## Currently supported: en: English; fa: Farsi; zh-cn: Chinese simplified
-LANGCODE?=en
-patch-language:
+##
+## Customize the bundle
+##
+
+bundle_%:
+ LANGCODE=$* make bundle
+
+bundle: copy-base install-extensions patch-vidalia-language patch-firefox-config
+
+compress-bundle:
+ cd $(NAME)_$(LANGCODE); $(SEVENZIP) a -sfx7z.sfx $(NAME)_$(LANGCODE).exe $(NAME)
+
+copy-base:
+ mkdir $(NAME)_$(LANGCODE)
+ cp -R $(DEST) $(NAME)_$(LANGCODE)/$(NAME)
+
+BUNDLE=$(NAME)_$(LANGCODE)/$(NAME)
+DUMMYPROFILE=$(BUNDLE)/FirefoxPortable/App/DummyProfile
+install-extensions:
+ ## Make a dummy profile to stop Firefox creating some large files
+ cp -R $(BUNDLE)/FirefoxPortable/App/DefaultData $(DUMMYPROFILE)
+ for extension in $(DEFAULT_EXTENSIONS) $(EXTENSIONS_DIR)/*; \
+ do $(BUNDLE)/FirefoxPortable/App/firefox/firefox.exe \
+ -profile $(DUMMYPROFILE) \
+ -install-global-extension $$extension; \
+ done
+ ## Delete the dummy profile
+ rm -fr $(DUMMYPROFILE)
+
+## Set the language for Vidalia
+patch-vidalia-language:
## Patch Vidalia
./patch-language.sh $(DEST)/Data/Vidalia/vidalia.conf $(LANGCODE)
- ## Download the required language pack
- rm -f langpack.xpi
-ifeq ($(LANGCODE),fa)
- make langpack_fa.xpi
- cp langpack_fa.xpi langpack.xpi
- cp $(CONFIG_SRC)/prefs_fa.js $(DEST)/FirefoxPortable/App/DefaultData/profile/prefs.js
-endif
-ifeq ($(LANGCODE),zh-cn)
- make langpack_zh-cn.xpi
- cp langpack_zh-cn.xpi langpack.xpi
- cp $(CONFIG_SRC)/prefs_zh-cn.js $(DEST)/FirefoxPortable/App/DefaultData/profile/prefs.js
-endif
- ## Install the language pack if exists
- cp -R $(DEST)/FirefoxPortable/App/DefaultData $(DUMMYPROFILE)
- $(DEST)/FirefoxPortable/App/firefox/firefox.exe \
- -profile $(DUMMYPROFILE) \
- -install-global-extension langpack.xpi
- rm -fr $(DUMMYPROFILE)
+patch-firefox-config:
+ ## TODO
+
+###
+### Utilities
+###
+
## Copy Firefox preferences from a run of FirefoxPortable to be the default
apply-prefs:
cp $(DEST)/FirefoxPortable/Data/profile/prefs.js $(CONFIG_SRC)
-compress-bundle:
- $(SEVENZIP) a -sfx7z.sfx "Tor Browser.exe" $(DEST)
-
-clean:
- rm -f *~
- rm -fr $(DEST) $(BINARIES) $(DOCS)
- rm -f "Tor Browser.exe"
-
## Export the source code of the bundle
SRCVERSION=0.0.6
SRCNAME=tor-browser-$(SRCVERSION)