[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] r18342: {torvm} Initial import of Tor VM in Vidalia bundle configuration and (in torvm/trunk/build/win32: . files patches src src/pkg)



Author: coderman
Date: 2009-01-30 10:24:10 -0500 (Fri, 30 Jan 2009)
New Revision: 18342

Added:
   torvm/trunk/build/win32/patches/openssl-0.9.8i-mingw-shared.patch
   torvm/trunk/build/win32/patches/polipo-mingw.patch
   torvm/trunk/build/win32/patches/qt-mingwssl.patch
   torvm/trunk/build/win32/patches/vidalia-torvm.patch
   torvm/trunk/build/win32/src/pkg/
   torvm/trunk/build/win32/src/pkg/bundle.nsi
   torvm/trunk/build/win32/src/pkg/header.bmp
   torvm/trunk/build/win32/src/pkg/netinst.nsi
   torvm/trunk/build/win32/src/pkg/torinst32.ico
   torvm/trunk/build/win32/src/pkg/torvm.wxs
   torvm/trunk/build/win32/src/pkg/welcome.bmp
Modified:
   torvm/trunk/build/win32/Makefile
   torvm/trunk/build/win32/files/buildall.sh
   torvm/trunk/build/win32/files/install.bat
Log:
Initial import of Tor VM in Vidalia bundle configuration and packaging work in progress.

Modified: torvm/trunk/build/win32/Makefile
===================================================================
--- torvm/trunk/build/win32/Makefile	2009-01-30 15:23:44 UTC (rev 18341)
+++ torvm/trunk/build/win32/Makefile	2009-01-30 15:24:10 UTC (rev 18342)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008  The Tor Project, Inc.
+# Copyright (C) 2009  The Tor Project, Inc.
 # See LICENSE file for rights and terms.
 
 SHELL=/bin/bash
@@ -122,6 +122,75 @@
 PERL_URL=http://downloads.sourceforge.net/mingw/perl-5.6.1-MSYS-1.0.11-1.tar.bz2?modtime=1206455338&big_mirror=1
 PERL_SUM=ff1f07a061c7958bc9043f0085a55ff0101b1be4
 
+GROFF_F=groff-1.19.2.tar.gz
+GROFF_URL=http://ftp.gnu.org/gnu/groff/groff-1.19.2.tar.gz
+GROFF_SUM=cfad99a5c52933a6a9180e394bd94fbaec0ac956
+
+CMAKE_F=cmake-2.6.2.tar.gz
+CMAKE_URL=http://www.cmake.org/files/v2.6/cmake-2.6.2.tar.gz
+CMAKE_SUM=48d33afaf23d40f2ea9aa2f5018c7213983222c2
+
+SSLSRC_F=openssl-0.9.8i.tar.gz
+SSLSRC_URL=http://www.openssl.org/source/openssl-0.9.8i.tar.gz
+SSLSRC_SUM=b2e029cfb68bf32eae997d60317a40945db5a65f
+
+PY2EXE_F=py2exe-0.6.9.zip
+PY2EXE_TGZ=py2exe.tar.gz
+PY2EXE_URL=http://downloads.sourceforge.net/py2exe/py2exe-0.6.9.zip?modtime=1226789941&big_mirror=1
+PY2EXE_SUM=f1a2cdfbf6d142f6ff54edfcf9d127e2d07169d5
+
+WIX_F=wix3.0.4721.0-binaries.zip
+WIX_TGZ=wix.tar.gz
+WIX_URL=http://downloads.sourceforge.net/wix/wix3.0.4721.0-binaries.zip?modtime=1227270606&big_mirror=1
+WIX_SUM=3035442aeab28a01f1cb032c610f375f763a0f88
+
+GNURX_F=mingw-libgnurx-2.5.1-src.tar.gz
+GNURX_URL=http://downloads.sourceforge.net/mingw/mingw-libgnurx-2.5.1-src.tar.gz?modtime=1178542293&big_mirror=1
+GNURX_SUM=f1e4af2541645dac82362b618aaa849658cd4988
+
+NSIS_VER=2.42
+NSIS_F=nsis-$(NSIS_VER).zip
+NSIS_URL=http://downloads.sourceforge.net/nsis/nsis-2.42.zip?modtime=1229784735&big_mirror=1
+NSIS_SUM=a1aef12a33f16273ac9109fde28713399f6a8016
+NSIS_TGZ=nsis-2.42.tar.gz
+
+7ZIP_VER=464
+7ZIP_F=7z464.msi
+7ZIP_URL=http://downloads.sourceforge.net/sevenzip/7z464.msi?modtime=1230949842&big_mirror=1
+7ZIP_SUM=19a06e188a83452dc9273290dbef71220686c4c1
+7ZIP_NAME=7zip.msi
+
+QT_VER=4.4.3
+QT_F=qt-win-opensource-src-$(QT_VER).zip
+QT_TGZ=qt-$(QT_VER).tgz
+QT_URL=ftp://ftp.trolltech.com/qt/source/qt-win-opensource-src-$(QT_VER).zip
+QT_SUM=669d494b9c37353f87c13765ed9f3ea97c0fa9e0
+
+VIDALIA_NAME=vidalia-latest
+VIDALIA_TGZ=$(VIDALIA_NAME).tar.gz
+VIDALIA_SVN=https://svn.vidalia-project.net/svn/vidalia/trunk/
+
+POLIPO_F=polipo-20080907.tar.gz
+POLIPO_URL=http://www.pps.jussieu.fr/~jch/software/files/polipo/polipo-20080907.tar.gz
+POLIPO_SUM=dda211e3027310891fb555c1fe5fa2f5b274aa0f
+
+# for package resources
+TORSVN_NAME=tor-latest
+TORSVN_TGZ=$(TORSVN_NAME).tar.gz
+TORSVN_SVN=https://tor-svn.freehaven.net/svn/tor/trunk
+
+TORBUTTON_NAME=torbutton-latest
+TORBUTTON_TGZ=$(TORBUTTON_NAME).tar.gz
+TORBUTTON_SVN=https://tor-svn.freehaven.net/svn/torbutton/trunk
+
+PYCRYPTO_NAME=pycrypto-latest
+PYCRYPTO_TGZ=$(PYCRYPTO_NAME).tar.gz
+PYCRYPTO_GIT=git://git.pycrypto.org:9419/crypto/pycrypto-2.x.git
+
+THANDY_NAME=thandy-latest
+THANDY_TGZ=$(THANDY_NAME).tar.gz
+THANDY_GIT=git://git.torproject.org/git/thandy
+
 SDL_F=SDL-1.2.13.tar.gz
 SDL_URL=http://www.libsdl.org/release/SDL-1.2.13.tar.gz
 SDL_SUM=51fcaa3e1d5c01fd813ea08688780f86b19cf539
@@ -142,7 +211,7 @@
 WINDDK_URL=http://download.microsoft.com/download/9/0/f/90f019ac-8243-48d3-91cf-81fc4093ecfd/1830_usa_ddk.iso
 WINDDK_SUM=0d2154d88a5ee252cc908630c77863bb42777387
 
-ALLFILES=$(ZLIB_F) $(GZIP_F) $(BZIP2_F) $(LIBARCH_F) $(BINUTILS_F) $(GCCORE_F) $(GPP_F) $(MINGWRUN_F) $(MINGWUTIL_F) $(MAKE_F) $(W32API_F) $(MSYS_F) $(MSYSCORE_F) $(BASH_F) $(DIFFUTIL_F) $(LIBTOOL_F) $(MINIRES_F) $(MSYSZLIB_F) $(MSYSCRYPT_F) $(M4_F) $(SSL_F) $(SSH_F) $(ZLIBSRC_F) $(PTHREADS_F) $(AMAKE_F) $(ACONF_F) $(PERL_F) $(SDL_F) $(WPCAPSRC_F) $(QEMU_F) $(OVPN_F)
+ALLFILES=$(ZLIB_F) $(GZIP_F) $(BZIP2_F) $(LIBARCH_F) $(BINUTILS_F) $(GCCORE_F) $(GPP_F) $(MINGWRUN_F) $(MINGWUTIL_F) $(MAKE_F) $(W32API_F) $(MSYS_F) $(MSYSCORE_F) $(BASH_F) $(DIFFUTIL_F) $(LIBTOOL_F) $(MINIRES_F) $(MSYSZLIB_F) $(MSYSCRYPT_F) $(M4_F) $(SSL_F) $(SSH_F) $(ZLIBSRC_F) $(PTHREADS_F) $(AMAKE_F) $(ACONF_F) $(PERL_F) $(GROFF_F) $(CMAKE_F) $(QT_F) $(NSIS_F) $(7ZIP_F) $(SSLSRC_F) $(PY2EXE_F) $(WIX_F) $(GNURX_F) $(POLIPO_F) $(SDL_F) $(WPCAPSRC_F) $(QEMU_F) $(OVPN_F)
 
 default all: downloads extract buildiso runinstall
 
@@ -175,6 +244,16 @@
 	@if [ ! -e $(WDLDIR)/$(ACONF_F) ]; then $(DLCMD) "$(ACONF_URL)" $(ACONF_SUM) "$(WDLDIR)/$(ACONF_F)"; fi
 	@if [ ! -e $(WDLDIR)/$(AMAKE_F) ]; then $(DLCMD) "$(AMAKE_URL)" $(AMAKE_SUM) "$(WDLDIR)/$(AMAKE_F)"; fi
 	@if [ ! -e $(WDLDIR)/$(PERL_F) ]; then $(DLCMD) "$(PERL_URL)" $(PERL_SUM) "$(WDLDIR)/$(PERL_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(GROFF_F) ]; then $(DLCMD) "$(GROFF_URL)" $(GROFF_SUM) "$(WDLDIR)/$(GROFF_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(CMAKE_F) ]; then $(DLCMD) "$(CMAKE_URL)" $(CMAKE_SUM) "$(WDLDIR)/$(CMAKE_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(QT_F) ]; then $(DLCMD) "$(QT_URL)" $(QT_SUM) "$(WDLDIR)/$(QT_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(NSIS_F) ]; then $(DLCMD) "$(NSIS_URL)" $(NSIS_SUM) "$(WDLDIR)/$(NSIS_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(7ZIP_F) ]; then $(DLCMD) "$(7ZIP_URL)" $(7ZIP_SUM) "$(WDLDIR)/$(7ZIP_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(SSLSRC_F) ]; then $(DLCMD) "$(SSLSRC_URL)" $(SSLSRC_SUM) "$(WDLDIR)/$(SSLSRC_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(PY2EXE_F) ]; then $(DLCMD) "$(PY2EXE_URL)" $(PY2EXE_SUM) "$(WDLDIR)/$(PY2EXE_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(WIX_F) ]; then $(DLCMD) "$(WIX_URL)" $(WIX_SUM) "$(WDLDIR)/$(WIX_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(GNURX_F) ]; then $(DLCMD) "$(GNURX_URL)" $(GNURX_SUM) "$(WDLDIR)/$(GNURX_F)"; fi
+	@if [ ! -e $(WDLDIR)/$(POLIPO_F) ]; then $(DLCMD) "$(POLIPO_URL)" $(POLIPO_SUM) "$(WDLDIR)/$(POLIPO_F)"; fi
 	@if [ ! -e $(WDLDIR)/$(SDL_F) ]; then $(DLCMD) "$(SDL_URL)" $(SDL_SUM) "$(WDLDIR)/$(SDL_F)"; fi
 	@if [ ! -e $(WDLDIR)/$(WPCAPSRC_F) ]; then $(DLCMD) "$(WPCAPSRC_URL)" $(WPCAPSRC_SUM) "$(WDLDIR)/$(WPCAPSRC_F)"; fi
 	@if [ ! -e $(WDLDIR)/$(OVPN_F) ]; then $(DLCMD) "$(OVPN_URL)" $(OVPN_SUM) "$(WDLDIR)/$(OVPN_F)"; fi
@@ -210,20 +289,43 @@
 	cp files/fstab $(ISODIR)/bin/; \
 	cp files/buildall.sh $(ISODIR)/dl/src; \
 	cp patches/* $(ISODIR)/dl/src; \
+	cp $(WDLDIR)/$(7ZIP_F) $(ISODIR)/dl/$(7ZIP_NAME); \
 	unzip $(WDLDIR)/$(ZLIB_F) -d $(ISODIR)/ bin/zlib1.dll; \
 	unzip $(WDLDIR)/$(GZIP_F) -d $(ISODIR)/ bin/gzip.exe; \
 	unzip $(WDLDIR)/$(BZIP2_F) -d $(ISODIR)/ bin/bzip2.exe bin/bzip2.dll; \
 	tar jxf $(WDLDIR)/$(BASH_F) bin/bash.exe bin/sh.exe; mv bin/* $(ISODIR)/bin/;rmdir bin; \
 	tar jxf $(WDLDIR)/$(MSYS_F) bin/msys-1.0.dll bin/mount.exe bin/ps.exe; mv bin/* $(ISODIR)/bin/;rmdir bin; \
+	tar jxf $(WDLDIR)/$(MSYSZLIB_F) bin/msys-z.dll; mv bin/* $(ISODIR)/bin/;rmdir bin; \
 	unzip $(WDLDIR)/$(LIBARCH_F) -d $(ISODIR)/ bin/bsdtar.exe bin/libarchive2.dll; \
 	cp $(addprefix $(WDLDIR)/, $(ALLFILES)) $(ISODIR)/dl/; \
 	unzip $(WDLDIR)/$(WPCAPSRC_F); mv winpcap WpcapSrc_4_1_beta4; tar cf $(ISODIR)/dl/src/WpcapSrc_4_1_beta4.tar WpcapSrc_4_1_beta4; gzip -9 $(ISODIR)/dl/src/WpcapSrc_4_1_beta4.tar; rm -rf WpcapSrc_4_1_beta4; \
 	mv $(ISODIR)/dl/$(PTHREADS_F) $(ISODIR)/dl/src/; \
 	mv $(ISODIR)/dl/$(QEMU_F) $(ISODIR)/dl/src/; \
+	mv $(ISODIR)/dl/$(GROFF_F) $(ISODIR)/dl/src/; \
+	mv $(ISODIR)/dl/$(CMAKE_F) $(ISODIR)/dl/src/; \
+	mv $(ISODIR)/dl/$(SSLSRC_F) $(ISODIR)/dl/src/; \
+	mv $(ISODIR)/dl/$(GNURX_F) $(ISODIR)/dl/src/; \
+	mv $(ISODIR)/dl/$(POLIPO_F) $(ISODIR)/dl/src/; \
+	unzip $(WDLDIR)/$(PY2EXE_F) -d tmp; mv tmp/py2exe* py2exe;rmdir tmp; tar zcf $(ISODIR)/dl/$(PY2EXE_TGZ) py2exe; rm -rf py2exe; \
+	unzip $(WDLDIR)/$(NSIS_F); tar zcf $(ISODIR)/dl/$(NSIS_TGZ) nsis-$(NSIS_VER); rm -rf nsis-$(NSIS_VER) ; \
+	unzip $(WDLDIR)/$(WIX_F) -d wix; tar zcf $(ISODIR)/dl/$(WIX_TGZ) wix; rm -rf wix; \
+	unzip $(WDLDIR)/$(QT_F) -d qt-$(QT_VER); mv qt-$(QT_VER)/qt-*/* qt-$(QT_VER)/; rm -rf qt-$(QT_VER)/qt-*; tar zcf $(ISODIR)/dl/src/$(QT_TGZ) qt-$(QT_VER); rm -rf qt-$(QT_VER); \
+	rm -rf $(PYCRYPTO_NAME); git clone $(PYCRYPTO_GIT) $(PYCRYPTO_NAME) ; \
+	find $(PYCRYPTO_NAME) -name '\.git' -exec rm -rf {} \; ; \
+	tar zcf $(ISODIR)/dl/src/$(PYCRYPTO_TGZ) $(PYCRYPTO_NAME); rm -rf $(PYCRYPTO_NAME); \
+	rm -rf $(VIDALIA_NAME); svn export $(VIDALIA_SVN) $(VIDALIA_NAME) ; \
+	tar zcf $(ISODIR)/dl/src/$(VIDALIA_TGZ) $(VIDALIA_NAME); rm -rf $(VIDALIA_NAME); \
+	rm -rf $(THANDY_NAME); git clone $(THANDY_GIT) $(THANDY_NAME) ; \
+	tar zcf $(ISODIR)/dl/src/$(THANDY_TGZ) $(THANDY_NAME); rm -rf $(THANDY_NAME); \
+	rm -rf $(TORSVN_NAME); svn export $(TORSVN_SVN) $(TORSVN_NAME) ; \
+	tar zcf $(ISODIR)/dl/src/$(TORSVN_TGZ) $(TORSVN_NAME); rm -rf $(TORSVN_NAME); \
+	rm -rf $(TORBUTTON_NAME); svn export $(TORBUTTON_SVN) $(TORBUTTON_NAME) ; cd $(TORBUTTON_NAME) ; bash makexpi.sh ; cd .. ; \
+	mv $(TORBUTTON_NAME)/pkg/*.xpi $(ISODIR)/dl/src/ ; rm -rf $(TORSVN_NAME); \
 	mv $(ISODIR)/dl/$(SDL_F) $(ISODIR)/dl/src/; \
 	mv $(ISODIR)/dl/$(OVPN_F) $(ISODIR)/dl/src/; \
 	mv $(ISODIR)/dl/$(ZLIBSRC_F) $(ISODIR)/dl/src/; \
 	( cd src && tar zcf ../$(ISODIR)/dl/src/torvm-w32.tgz torvm-w32 ); \
+	( cd src && tar zcf ../$(ISODIR)/dl/src/pkg.tgz pkg ); \
 	touch $(ISODIR)/VMDEVISO.TXT
 
 buildiso: extract

Modified: torvm/trunk/build/win32/files/buildall.sh
===================================================================
--- torvm/trunk/build/win32/files/buildall.sh	2009-01-30 15:23:44 UTC (rev 18341)
+++ torvm/trunk/build/win32/files/buildall.sh	2009-01-30 15:24:10 UTC (rev 18342)
@@ -1,10 +1,14 @@
 #!/bin/bash
-export PATH=.:/usr/local/bin:/usr/bin:/bin:/mingw/bin:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem
+export PATH=.:/usr/local/bin:/usr/bin:/bin:/mingw/bin:/wix:/lib:/usr/local/lib:/usr/libexec:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem
 export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib:/mingw/lib
 export ddir=/c/Tor_VM
 export libdir="${ddir}/lib"
 export bindir="${ddir}/bin"
 export statedir="${ddir}/state"
+export brootdir=/c/Tor_Win32
+export instdir=$broot/Installer
+export thandir=$broot/Thandy
+export bundledir=$broot/Bundle
 
 export ZLIB_VER="1.2.3"
 export ZLIB_DIR="zlib-${ZLIB_VER}"
@@ -14,7 +18,62 @@
 export WPCAP_INCLUDE="-I${WPCAP_DIR}/wpcap/libpcap -I${WPCAP_DIR}/wpcap/libpcap/Win32/Include"
 export WPCAP_LDFLAGS="-L${WPCAP_DIR}/wpcap/PRJ -L${WPCAP_DIR}/packetNtx/Dll/Project"
 
+export TORSVN_DIR="tor-latest"
+export TORSVN_FILE="tor-latest.tar.gz"
 
+
+export OPENSSL_VER="0.9.8i"
+export OPENSSL_DIR="openssl-${OPENSSL_VER}"
+export OPENSSL_FILE="openssl-${OPENSSL_VER}.tar.gz"
+
+export GROFF_VER="1.19.2"
+export GROFF_DIR="groff-${GROFF_VER}"
+export GROFF_FILE="groff-${GROFF_VER}.tar.gz"
+
+export CMAKE_VER="2.6.2"
+export CMAKE_DIR="cmake-${CMAKE_VER}"
+export CMAKE_FILE="cmake-${CMAKE_VER}.tar.gz"
+export CMAKEBIN="/c/Program\ Files/CMake/bin"
+export PATH="${PATH}:${CMAKEBIN}:/src/$CMAKE_DIR/bin"
+
+export QT_VER="4.4.3"
+export QT_DIR="qt-${QT_VER}"
+export QT_FILE="qt-${QT_VER}.tgz"
+export QT_ROOT="/c/Qt/${QT_VER}"
+export QT_BIN="${QT_ROOT}/bin"
+export QTDIR="C:\Qt\4.4.3"
+export QMAKESPEC=win32-g++
+export PATH="$PATH:$QT_BIN:$QTDIR\bin"
+
+export PYTHON_ROOT=/c/Python26
+export PATH=$PATH:$PYTHON_ROOT
+
+export VIDALIA_FILE=vidalia-latest.tar.gz
+export VIDALIA_DIR=vidalia-latest
+
+export GNURX_FILE=mingw-libgnurx-2.5.1-src.tar.gz
+export GNURX_DIR=mingw-libgnurx-2.5.1
+
+export POLIPO_FILE=polipo-20080907.tar.gz
+export POLIPO_DIR=polipo-20080907
+
+export TORBUTTON_FILE=torbutton-1.2.0.xpi
+
+export NSIS_DIR=nsis-2.42
+export 7ZIP_DIR="/c/Program Files/7-Zip"
+export PATH="${PATH}:/${NSIS_DIR}/Bin:/${NSIS_DIR}:/${NSIS_DIR}/bin:${7ZIP_DIR}"
+
+if [ -d "$VS80COMNTOOLS" ]; then
+  export VSTOOLSDIR="$VS80COMNTOOLS"
+  export VSTOOLSENV="$VS80COMNTOOLS\vsvars32.bat"
+elif [ -d "$VS90COMNTOOLS" ]; then
+  export VSTOOLSDIR="$VS90COMNTOOLS"
+  export VSTOOLSENV="$VS90COMNTOOLS\vsvars32.bat"
+else
+  unset VSTOOLSDIR
+  unset VSTOOLSENV
+fi
+
 if [ -f ~/.ssh/user ]; then
   export BUILD_SCP_USER=`cat ~/.ssh/user`
   export BUILD_SCP_HOST=`cat ~/.ssh/host`
@@ -50,9 +109,9 @@
   fi
 else
 
-for dir in $ddir $libdir $bindir $statedir; do
+for dir in $ddir $libdir $bindir $statedir $brootdir $instdir $thandir $bundledir; do
   if [ ! -d $dir ]; then
-    mkdir $dir
+    mkdir -p $dir
   fi
 done
 
@@ -322,6 +381,313 @@
   strip $ddir/*.exe
 fi
 
+echo "Building groff ..."
+cd /usr/src
+tar zxvf $GROFF_FILE
+cd $GROFF_DIR
+./configure --prefix=/usr
+if (( $? != 0 )); then
+  echo "ERROR: groff configure failed." >&2
+  exit 1
+fi
+for DEP in src/include src/libs/libgroff src/libs/libdriver src/preproc/soelim src/preproc/html src/devices/grotty src/devices/grops src/devices/grohtml src/roff/groff src/roff/troff font/devps font/devascii font/devhtml tmac; do
+  make $DEP
+  if (( $? != 0 )); then
+    echo "ERROR: groff build for DEP $DEP failed." >&2
+    exit 1
+  fi 
+done
+cp src/preproc/soelim/soelim.exe src/preproc/html/pre-grohtml.exe src/roff/groff/groff.exe src/devices/grohtml/post-grohtml.exe src/devices/grotty/grotty.exe src/devices/grops/grops.exe src/roff/troff/troff.exe /bin/
+cp -a font/devascii /share/
+cp -a font/devhtml /share/
+cp -a font/devps /share/
+cp -a tmac /share/
+  
+
+echo "Building openssl ..."
+cd /usr/src
+tar zxvf $OPENSSL_FILE
+cd $OPENSSL_DIR
+patch -p1 < ../openssl-0.9.8i-mingw-shared.patch
+./Configure --prefix=/usr no-idea no-rc5 no-mdc2 no-hw no-sse2 zlib-dynamic threads shared mingw
+if (( $? != 0 )); then
+  echo "ERROR: openssl configure failed." >&2
+  exit 1
+fi
+echo "Configuring OpenSSL header files for build ..."
+find crypto -name "*.h" -exec cp {} include/openssl/ \;
+find ssl -name "*.h" -exec cp {} include/openssl/ \;
+cp *.h include/openssl/
+make
+if (( $? != 0 )); then
+  cp *.a /lib
+  find crypto -name "*.h" -exec cp {} include/openssl/ \;
+  find ssl -name "*.h" -exec cp {} include/openssl/ \;
+  cp *.h include/openssl/
+  make
+  if (( $? != 0 )); then
+    echo "ERROR: openssl build failed." >&2
+    exit 1
+  fi
+fi
+cp -f *.dll /lib/
+cp *.a /lib/
+cp -a include/openssl /usr/include/
+
+echo "Extracting sources for Tor from svn ..."
+cd /usr/src
+tar zxvf $TORSVN_FILE
+  
+# Microsoft Installer package build
+TOR_WXS=tor.wxs
+TORUI_WXS=WixUI_Tor.wxs
+TOR_WXS_DIR=contrib
+TOR_MSI=tor.msi
+WIX_UI=/wix/WixUIExtension.dll
+
+echo "Building PyCrypto ..."
+cd /usr/src
+tar zxvf pycrypto-latest.tar.gz
+cd pycrypto-latest
+python setup.py build
+if (( $? != 0 )); then
+  echo "ERROR: PyCrypto build failed."
+  exit 1
+fi
+python setup.py install
+if (( $? != 0 )); then
+  echo "ERROR: PyCrypto install failed."
+  exit 1
+fi
+
+echo "Building py2exe ..."
+cd /py2exe
+python setup.py build
+if (( $? != 0 )); then
+  echo "ERROR: Thandy build failed."
+  exit 1
+fi
+python setup.py install
+if (( $? != 0 )); then 
+  echo "ERROR: Thandy install failed."
+  exit 1
+fi
+
+echo "Building Thandy ..."
+cd /usr/src
+tar zxvf thandy-latest.tar.gz
+cd thandy-latest
+echo "Starting build..."
+python setup.py build
+if (( $? != 0 )); then
+  echo "ERROR: Thandy build failed."
+  exit 1 
+fi 
+python setup.py py2exe
+if (( $? != 0 )); then
+  echo "ERROR: Thandy install failed."
+  exit 1
+fi
+mv dist/ClientCLI.exe $thandir/Thandy.exe
+
+echo "Building CMake ..."
+cd /usr/src
+tar zxvf $CMAKE_FILE
+cd $CMAKE_DIR
+./bootstrap --no-qt-gui
+if (( $? != 0 )); then
+  echo "ERROR: CMake bootstrap / configure failed."
+#  exit 1
+fi
+make
+if (( $? != 0 )); then
+  echo "ERROR: CMake build failed."
+#  exit 1
+fi 
+make install
+if (( $? != 0 )); then
+  echo "ERROR: CMake install failed."
+#  exit 1
+fi
+
+echo "Building Qt ..."
+cd /usr/src
+mkdir /c/Qt
+tar zxvf $QT_FILE
+mv $QT_DIR /c/Qt/$QT_VER
+cd /c/Qt/$QT_VER
+if [ -f /src/qt-mingwssl.patch ]; then
+  patch -p1 < /src/qt-mingwssl.patch
+fi 
+./configure.exe -confirm-license -release -no-dbus -no-phonon -no-webkit -no-qdbus -no-opengl -no-qt3support -no-xmlpatterns -no-sse2 -no-3dnow -qt-style-windowsxp -qt-style-windowsvista -no-sql-sqlite -no-sql-sqlite2 -no-sql-odbc -no-fast -openssl
+echo "QT_BUILD_PARTS -= examples" >> .qmake.cache
+echo "QT_BUILD_PARTS -= demos" >> .qmake.cache
+echo "QT_BUILD_PARTS -= docs" >> .qmake.cache
+unix2dos .qmake.cache
+make
+if (( $? != 0 )); then
+  # seems to run out of memory???
+  make
+  if (( $? != 0 )); then
+    echo "ERROR: Qt build failed."
+  fi
+fi
+
+echo "Building GNU regex ..."
+cd /usr/src
+tar zxvf $GNURX_FILE
+cd $GNURX_DIR
+./configure --prefix=/usr
+if (( $? != 0 )); then
+  echo "ERROR: GNU regex configure failed."
+fi
+make
+if (( $? != 0 )); then
+  echo "ERROR: GNU regex build failed."
+fi
+make install
+if (( $? != 0 )); then
+  echo "ERROR: GNU regex install failed."
+fi
+
+echo "Building polipo ..."
+cd /usr/src
+tar zxvf $POLIPO_FILE
+cd $POLIPO_DIR
+if [ -f ../polipo-mingw.patch ]; then
+  echo "Patching polipo sources ..."
+  patch -p1 < ../polipo-mingw.patch
+fi
+make
+if (( $? != 0 )); then
+  echo "ERROR: polipo build failed."
+fi
+
+echo "Expanding package dir ..."
+cd /usr/src
+tar zxvf pkg.tgz
+
+echo "Building Vidalia ..."
+cd /usr/src
+tar zxvf $VIDALIA_FILE
+cd $VIDALIA_DIR
+if [ -f ../vidalia-torvm.patch ]; then
+  echo "Applying torvm patch to sources ..."
+  patch -p1 < ../vidalia-torvm.patch
+fi
+cmake -DOPENSSL_LIBRARY_DIR=/src/$OPENSSL_DIR -DCMAKE_BUILD_TYPE=release -G "MSYS Makefiles" .
+if [ ! -f Makefile ]; then
+  echo "ERROR: Vidalia cmake failed."
+fi
+make
+if (( $? != 0 )); then
+  echo "ERROR: Vidalia build failed."
+fi
+if [ -f src/vidalia/vidalia.exe ]; then
+  strip src/vidalia/vidalia.exe
+  ls -l src/vidalia/vidalia.exe
+  mkdir bin
+  for FILE in QtCore4.dll QtGui4.dll QtNetwork4.dll QtXml4.dll QtSvg4.dll; do
+    cp /c/Qt/$QT_VER/bin/$FILE bin/
+  done
+  cp /bin/mingwm10.dll bin/
+  cp /src/$OPENSSL_DIR/ssleay32-0.9.8.dll bin/
+  cp /src/$OPENSSL_DIR/cryptoeay32-0.9.8.dll bin/
+  cp /src/$ZLIB_DIR/*.dll bin/
+  cp /bin/pthreadGC2.dll bin/
+  cp /bin/libgnurx-0.dll bin/
+  cp /src/$POLIPO_DIR/polipo.exe bin/
+  cp pkg/win32/polipo.conf bin/
+  strip bin/*.dll
+  strip bin/*.exe
+
+  candle.exe pkg/win32/*.wxs
+  light.exe -out vidalia.msi vidalia.wixobj WixUI_Tor.wixobj -ext $WIX_UI
+  if [ -f vidalia.msi ]; then
+    cp vidalia.msi $bundledir
+    cp vidalia.msi ../pkg/
+    cp -a bin ../pkg/
+    ls -l vidalia.msi
+  else
+    echo "ERROR: unable to build vidalia MSI installer."
+  fi
+fi
+
+echo "Building bundle packages ..."
+cd /usr/src/pkg
+# DONT STRIP PY2EXEs!
+cp $thandir/Thandy.exe bin/
+cp /src/$TORSVN_DIR/contrib/*.wxs ./
+cp -a $ddir ./
+if [ -f /src/$TORBUTTON_FILE ]; then
+  cp /src/$TORBUTTON_FILE bin/torbutton.xpi
+fi
+
+cp /src/$TORBUTTON_FILE ./torbutton.xpi
+touch tbcheck.bat
+touch uninstall.bat
+candle.exe *.wxs
+
+light.exe -out torvm.msi WixUI_Tor.wixobj torvm.wixobj -ext $WIX_UI
+if [ -f torvm.msi ]; then
+  cp torvm.msi $bundledir
+  ls -l torvm.msi
+else
+  echo "ERROR: unable to build Tor VM MSI installer."
+fi
+
+light.exe -out polipo.msi WixUI_Tor.wixobj polipo.wixobj -ext $WIX_UI
+if [ -f polipo.msi ]; then
+  cp polipo.msi $bundledir
+  ls -l polipo.msi
+else
+  echo "ERROR: unable to build polipo MSI installer."
+fi
+
+light.exe -out torbutton.msi WixUI_Tor.wixobj torbutton.wixobj -ext $WIX_UI
+if [ -f torbutton.msi ]; then
+  cp torbutton.msi $bundledir
+  ls -l torbutton.msi
+else
+  echo "ERROR: unable to build torbutton MSI installer."
+fi
+
+light.exe -out thandy.msi WixUI_Tor.wixobj thandy.wixobj -ext $WIX_UI
+if [ -f thandy.msi ]; then
+  cp thandy.msi $bundledir
+  ls -l thandy.msi
+else
+  echo "ERROR: unable to build Thandy MSI installer."
+fi
+
+makensis.exe bundle.nsi
+if [ -f TorVMBundle.exe ]; then
+  cp TorVMBundle.exe $bundledir
+  ls -l TorVMBundle.exe
+else
+  echo "ERROR: unable to build Tor VM executable bundle installer."
+fi
+
+makensis.exe netinst.nsi
+if [ -f TorVMNetInstaller.exe ]; then
+  cp TorVMNetInstaller.exe $bundledir
+  ls -l TorVMNetInstaller.exe
+else
+  echo "ERROR: unable to build Tor VM executable network installer."
+fi
+
+export exename=Tor_VM.exe
+if [ -f $exename ]; then
+  rm -f $exename
+fi
+7z.exe a -sfx7z.sfx $exename Tor_VM
+if [ -f $exename ]; then
+  cp $exename $bundledir
+  ls -l $exename
+else
+  echo "ERROR: unable to build self extracting Tor VM archive."
+fi
+
 if [[ "$BUILD_SCP_USER" != "" ]]; then
   echo "Transferring build to destination ${BUILD_SCP_HOST}:${BUILD_SCP_DIR} ..."
   scp -o BatchMode=yes -o CheckHostIP=no -o StrictHostKeyChecking=no \

Modified: torvm/trunk/build/win32/files/install.bat
===================================================================
--- torvm/trunk/build/win32/files/install.bat	2009-01-30 15:23:44 UTC (rev 18341)
+++ torvm/trunk/build/win32/files/install.bat	2009-01-30 15:24:10 UTC (rev 18342)
@@ -34,6 +34,11 @@
 cd %MDIR%\%MVER%\dl\
 bzip2 -d *.bz2
 gzip -d *.gz
+IF NOT EXIST "%PROGRAMFILES%\7-Zip" (
+IF EXIST 7zip.msi (
+  msiexec /i 7zip.msi /QN
+)
+)
 cd /d %DDRV%
 cd %MDIR%\%MVER%
 for %%f in (dl\*.tar) do bsdtar xvf %%f

Added: torvm/trunk/build/win32/patches/openssl-0.9.8i-mingw-shared.patch
===================================================================
--- torvm/trunk/build/win32/patches/openssl-0.9.8i-mingw-shared.patch	                        (rev 0)
+++ torvm/trunk/build/win32/patches/openssl-0.9.8i-mingw-shared.patch	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,54 @@
+diff -Naur orig-openssl-0.9.8i/Configure mod-openssl-0.9.8i/Configure
+--- orig-openssl-0.9.8i/Configure	2008-09-12 14:47:00.000000000 +0000
++++ mod-openssl-0.9.8i/Configure	2008-10-04 01:28:59.415912960 +0000
+@@ -473,7 +473,7 @@
+ "BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN:${no_asm}:win32",
+ 
+ # MinGW
+-"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",
++"mingw", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall -D_WIN32_WINNT=0x333:::MINGW32:-lws2_32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-Wl,--export-all -mno-cygwin -shared:.dll.a",
+ 
+ # UWIN 
+ "UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
+@@ -947,7 +947,7 @@
+ 
+ my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
+ 
+-$IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
++### $IsMK1MF=1 if ($target eq "mingw" && $^O ne "cygwin" && !is_msys());
+ 
+ $exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target eq "mingw");
+ $exe_ext=".nlm" if ($target =~ /netware/);
+diff -Naur orig-openssl-0.9.8i/Makefile.org mod-openssl-0.9.8i/Makefile.org
+--- orig-openssl-0.9.8i/Makefile.org	2008-04-03 23:03:39.000000000 +0000
++++ mod-openssl-0.9.8i/Makefile.org	2008-10-02 10:12:30.532290416 +0000
+@@ -104,7 +104,7 @@
+ ZLIB_INCLUDE=
+ LIBZLIB=
+ 
+-DIRS=   crypto ssl engines apps test tools
++DIRS= crypto ssl
+ SHLIBDIRS= crypto ssl
+ 
+ # dirs in crypto to build
+@@ -223,9 +223,9 @@
+ 	@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)
+ 
+ sub_all: build_all
+-build_all: build_libs build_apps build_tests build_tools
++build_all: build_libs build_apps build_tools
+ 
+-build_libs: build_crypto build_ssl build_engines
++build_libs: build_crypto build_ssl 
+ 
+ build_crypto:
+ 	@dir=crypto; target=all; $(BUILD_ONE_CMD)
+@@ -254,7 +254,7 @@
+ 
+ libssl$(SHLIB_EXT): libcrypto$(SHLIB_EXT) libssl.a
+ 	@if [ "$(SHLIB_TARGET)" != "" ]; then \
+-		$(MAKE) SHLIBDIRS=ssl SHLIBDEPS='-lcrypto' build-shared; \
++		$(MAKE) SHLIBDIRS=ssl LIBDEPS='-lcrypto' build-shared; \
+ 	else \
+ 		echo "There's no support for shared libraries on this platform" >&2; \
+ 		exit 1; \

Added: torvm/trunk/build/win32/patches/polipo-mingw.patch
===================================================================
--- torvm/trunk/build/win32/patches/polipo-mingw.patch	                        (rev 0)
+++ torvm/trunk/build/win32/patches/polipo-mingw.patch	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,50 @@
+diff -Naur orig-polipo-20080907/Makefile mod-polipo-20080907/Makefile
+--- orig-polipo-20080907/Makefile	2008-09-07 21:21:20.000000000 +0000
++++ mod-polipo-20080907/Makefile	2008-12-22 19:25:07.878902816 +0000
+@@ -1,9 +1,9 @@
+-PREFIX = /usr/local
+-BINDIR = $(PREFIX)/bin
+-MANDIR = $(PREFIX)/man
+-INFODIR = $(PREFIX)/info
+-LOCAL_ROOT = /usr/share/polipo/www
+-DISK_CACHE_ROOT = /var/cache/polipo
++PREFIX = Polipo
++BINDIR = $(PREFIX)\bin
++MANDIR = $(PREFIX)\man
++INFODIR = $(PREFIX)\info
++LOCAL_ROOT = $(PREFIX)
++DISK_CACHE_ROOT = $(PREFIX)\cache
+ 
+ # To compile with Unix CC:
+ 
+@@ -13,7 +13,7 @@
+ 
+ # CC = gcc
+ # CDEBUGFLAGS = -Os -g -Wall -std=gnu99
+-CDEBUGFLAGS = -Os -g -Wall
++CDEBUGFLAGS = -Os -Wall
+ # CDEBUGFLAGS = -Os -Wall
+ # CDEBUGFLAGS = -g -Wall
+ 
+@@ -38,8 +38,10 @@
+ 
+ # On mingw, you need
+ 
+-# EXE=.exe
+-# LDLIBS = -lwsock32
++EXE=.exe
++LDLIBS = -lwsock32 -lregex
++
++TOR_DEFINES = -DNO_DISK_CACHE -DNO_IPv6 -DNO_FANCY_RESOLVER -DHAVE_REGEX
+ 
+ FILE_DEFINES = -DLOCAL_ROOT=\"$(LOCAL_ROOT)/\" \
+                -DDISK_CACHE_ROOT=\"$(DISK_CACHE_ROOT)/\"
+@@ -61,7 +63,7 @@
+ #  -DNO_REDIRECTOR to compile out the Squid-style redirector code
+ #  -DNO_SYSLOG to compile out logging to syslog
+ 
+-DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES)
++DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES) $(TOR_DEFINES)
+ 
+ CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES)
+ 

Added: torvm/trunk/build/win32/patches/qt-mingwssl.patch
===================================================================
--- torvm/trunk/build/win32/patches/qt-mingwssl.patch	                        (rev 0)
+++ torvm/trunk/build/win32/patches/qt-mingwssl.patch	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,29 @@
+diff -Naur orig-qt-4.4.3/src/network/ssl/qsslsocket_openssl_symbols.cpp mod-qt-4.4.3/src/network/ssl/qsslsocket_openssl_symbols.cpp
+--- orig-qt-4.4.3/src/network/ssl/qsslsocket_openssl_symbols.cpp	2008-09-27 09:00:56.000000000 +0000
++++ mod-qt-4.4.3/src/network/ssl/qsslsocket_openssl_symbols.cpp	2008-12-30 09:53:24.191484064 +0000
+@@ -327,14 +327,22 @@
+     if (!ssleay32->load()) {
+         // Cannot find ssleay32.dll
+         delete ssleay32;
+-        return pair;
++        ssleay32 = new QLibrary(QLatin1String("ssleay32-0.9.8"));
++        if (!ssleay32->load()) {
++            delete ssleay32;
++            return pair;
++        }
+     }
+ 
+     QLibrary *libeay32 = new QLibrary(QLatin1String("libeay32"));
+     if (!libeay32->load()) {
+-        delete ssleay32;
+         delete libeay32;
+-        return pair;
++        libeay32 = new QLibrary(QLatin1String("cryptoeay32-0.9.8"));
++        if (!libeay32->load()) {
++            delete libeay32;
++            delete ssleay32;
++            return pair;
++        }
+     }
+ 
+     pair.first = ssleay32;

Added: torvm/trunk/build/win32/patches/vidalia-torvm.patch
===================================================================
--- torvm/trunk/build/win32/patches/vidalia-torvm.patch	                        (rev 0)
+++ torvm/trunk/build/win32/patches/vidalia-torvm.patch	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,655 @@
+diff -Naur orig-vidalia/cmake/FindOpenSSL.cmake mod-vidalia/cmake/FindOpenSSL.cmake
+--- orig-vidalia/cmake/FindOpenSSL.cmake	2008-04-02 02:00:24.794800000 +0000
++++ mod-vidalia/cmake/FindOpenSSL.cmake	2009-01-26 10:46:24.132337536 +0000
+@@ -96,8 +96,8 @@
+   mark_as_advanced(OPENSSL_LIBSSL_DEBUG   OPENSSL_LIBCRYPTO_DEBUG
+                    OPENSSL_LIBSSL_RELEASE OPENSSL_LIBCRYPTO_RELEASE)
+ else(MSVC)
+-  find_library(OPENSSL_LIBSSL NAMES ssl ssleay32)
+-  find_library(OPENSSL_LIBCRYPTO NAMES crypto libeay32)
++  find_library(OPENSSL_LIBSSL NAMES ssleay32-0.9.8 ssl ssleay32)
++  find_library(OPENSSL_LIBCRYPTO NAMES cryptoeay32-0.9.8 crypto libeay32)
+ endif(MSVC)
+ 
+ 
+diff -Naur orig-vidalia/pkg/build-geoip-cache.sh mod-vidalia/pkg/build-geoip-cache.sh
+--- orig-vidalia/pkg/build-geoip-cache.sh	2008-02-29 04:30:11.928307000 +0000
++++ mod-vidalia/pkg/build-geoip-cache.sh	2009-01-26 10:47:18.600057184 +0000
+@@ -13,7 +13,7 @@
+ 
+ 
+ DIRURL="http://tor.noreply.org/tor/status/all";
+-GEOIPURL="http://geoip.vidalia-project.net/cgi-bin/geoip";
++GEOIPURL="http://peertech.org/geoip";
+ CACHEFILE="geoip-cache"
+ 
+ if [ "$1" == "-notimestamp" -o "$1" == "--notimestamp" ]; then
+diff -Naur orig-vidalia/pkg/win32/WixUI_Tor.wxs mod-vidalia/pkg/win32/WixUI_Tor.wxs
+--- orig-vidalia/pkg/win32/WixUI_Tor.wxs	1970-01-01 00:00:00.000000000 +0000
++++ mod-vidalia/pkg/win32/WixUI_Tor.wxs	2009-01-26 10:47:34.940573048 +0000
+@@ -0,0 +1,62 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!--
++    Copyright (c) Microsoft Corporation.  All rights reserved.
++    
++    The use and distribution terms for this software are covered by the
++    Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
++    which can be found in the file CPL.TXT at the root of this distribution.
++    By using this software in any fashion, you are agreeing to be bound by
++    the terms of this license.
++    
++    You must not remove this notice, or any other, from this software.
++
++    This is modified from WixUI_Mondo to omit EULA and other parts not necessary
++    for Tor installation.
++-->
++<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
++    <Fragment>
++        <UI Id="WixUI_Tor">
++            <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
++            <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
++            <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
++
++            <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
++            <Property Id="WixUI_Mode" Value="Tor" />
++
++            <DialogRef Id="ErrorDlg" />
++            <DialogRef Id="FatalError" />
++            <DialogRef Id="FilesInUse" />
++            <DialogRef Id="MsiRMFilesInUse" />
++            <DialogRef Id="PrepareDlg" />
++            <DialogRef Id="ProgressDlg" />
++            <DialogRef Id="ResumeDlg" />
++            <DialogRef Id="UserExit" />
++
++            <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
++
++            <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg">1</Publish>
++
++            <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
++            <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
++            <Publish Dialog="SetupTypeDlg" Control="CustomButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
++
++            <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">WixUI_InstallMode = "Change"</Publish>
++            <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish>
++            <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
++
++            <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
++            <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
++            <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
++            <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
++
++            <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
++
++            <Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
++            <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
++            <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
++            <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
++        </UI>
++
++        <UIRef Id="WixUI_Common" />
++    </Fragment>
++</Wix>
+diff -Naur orig-vidalia/pkg/win32/polipo.conf mod-vidalia/pkg/win32/polipo.conf
+--- orig-vidalia/pkg/win32/polipo.conf	2008-04-06 00:00:07.066809000 +0000
++++ mod-vidalia/pkg/win32/polipo.conf	2009-01-26 10:49:35.056312680 +0000
+@@ -36,8 +36,9 @@
+ 
+ # Uncomment this if you want to use a parent SOCKS proxy:
+ 
+-socksParentProxy = "localhost:9050"
+-socksProxyType = socks5
++# For Tor VM we don't use an upstream proxy, just transparent
++#socksParentProxy = "localhost:9050"
++#socksProxyType = socks5
+ 
+ 
+ ### Memory
+@@ -88,7 +89,7 @@
+ # Uncomment this if you want to contact IPv4 hosts only (and make DNS
+ # queries somewhat faster):
+ #
+-# dnsQueryIPv6 = no
++dnsQueryIPv6 = no
+ 
+ # Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
+ # double-stack hosts:
+@@ -99,7 +100,9 @@
+ # default resolver instead.  If you do that, Polipo will freeze during
+ # every DNS query:
+ 
+-dnsUseGethostbyname = yes
++# For Tor VM we transparently proxy DNS and thus don't need to use this
++# slow resolver
++# dnsUseGethostbyname = yes
+ 
+ 
+ ### HTTP
+diff -Naur orig-vidalia/pkg/win32/vidalia.wxs.in mod-vidalia/pkg/win32/vidalia.wxs.in
+--- orig-vidalia/pkg/win32/vidalia.wxs.in	2008-12-09 23:53:31.956238000 +0000
++++ mod-vidalia/pkg/win32/vidalia.wxs.in	2009-01-26 03:37:43.609451352 +0000
+@@ -1,89 +1,198 @@
+ <?xml version="1.0" encoding="Windows-1252" ?>
+ <!-- 
+-  $Id: vidalia.wxs.in 3377 2008-12-09 23:53:31Z edmanm $
++  $Id: vidalia.wxs.in 3329 2008-11-21 02:04:34Z edmanm $
++
++  This file is part of Vidalia, and is subject to the license terms in the
++  LICENSE file, found in the top level directory of this distribution. If 
++  you did not receive the LICENSE file with this file, you may obtain it
++  from the Vidalia source package distributed by the Vidalia Project at
++  http://www.vidalia-project.net/. No part of Vidalia, including this file,
++  may be copied, modified, propagated, or distributed except according to
++  the terms described in the LICENSE file.
++
++  Compile with: 
++    candle.exe vidalia.wxs
++    light.exe vidalia.wixobj -out vidalia.msi -ext C:\Path\to\Wix\bin\WixUIExtension.dll
+  -->
+ <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
+-  <Product Name="Vidalia @VERSION@" Id="B3C22D59-D907-4559-9569-92AAA34DB6F0"
++  <?define ThisProductVersion="@VER_MAJOR@.@VER_MINOR@.@VER_PATCH@" ?>
++  <?define ThisProductVersionDisp="@VERSION@" ?>
++  <?define UpgradeCode="147903e8-fa6f-47f0-bf97-b7250337b2b7" ?>
++  
++  <?define CurrProductGUID="0a57c31b-6cce-4bd0-b3ef-652a6cceb914" ?>
++  <?define CurrExecutableGUID="737794bc-3662-4f12-9755-86568c3164e0" ?>
++  <?define CurrQtLibsGUID="90548e2f-390e-4b93-b844-24ee75a83d4e" ?>
++  <?define CurrCryptoLibsGUID="d887b89a-984f-4301-9f18-7811361372d3" ?>
++  <?define CurrMingwLibsGUID="86b879cf-306f-438e-b38f-b9e6d74152cb" ?>
++  <?define CurrGeoIPCacheGUID="8686ff7a-d812-44db-8c11-b94478495096" ?>
++  <?define CurrPolipoConfigGUID="2151ad60-10ce-4e91-ab44-d1895d3b001d" ?>
++  <?define CurrDocumentsGUID="abfaae86-352e-4b63-b9b3-c222936f24b3" ?>
++  <?define CurrConfigFileGUID="4428ffd8-710d-4550-b51d-16e69e073981" ?>
++  <?define CurrStartMenuGUID="69d3f4bb-755c-4ade-aeb1-771fd5f8ba60" ?>
++  <?define CurrDesktopGUID="65ff7a92-7e27-4d20-b925-8b86387bc56c" ?>
++  <?define CurrDocsOnDesktopGUID="1e141231-e111-4567-94a6-7f42def8a516" ?>
++  <?define CurrStartupGUID="6073bd5b-8eee-465e-9eca-f1ec7c6ddd67" ?>
++  <?define CurrLocalProgramsGUID="24aaf630-09aa-45ef-a3cc-4088302b3488" ?>
++
++  <Product Name="Vidalia $(var.ThisProductVersionDisp)" Id="$(var.CurrProductGUID)"
+            Language="1033" Codepage="1252"
+-           Version="@VER_MAJOR@.@VER_MINOR@.@VER_PATCH@" 
++           Version="$(var.ThisProductVersion)"
+            Manufacturer="vidalia-project.net"
+-           UpgradeCode="B7FBFE11-D7CA-4895-A1FB-1D7E065E4D04">
++           UpgradeCode="$(var.UpgradeCode)">
+     
+     <Package Id="*" Keywords="Installer"
+-             Description="Vidalia @VERSION@ Installer"
++             Description="Vidalia $(var.ThisProductVersionDisp) Installer"
+              Manufacturer="vidalia-project.net"
+              InstallerVersion="100" Compressed="yes"
+-             Languages="1033"  SummaryCodepage="1252" />
++             Languages="1033"  SummaryCodepage="1252"
++             InstallPrivileges="limited" />
+ 
+     <Media Id="1" Cabinet="Vidalia.cab" CompressionLevel="high"
+            EmbedCab="yes" DiskPrompt="CD-ROM #1" />
+-    <Property Id="DiskPrompt" Value="Vidalia @VERSION@ Installation [1]" />
++    <Property Id="DiskPrompt" Value="Vidalia $(var.ThisProductVersionDisp) Installation Volume [1]" />
++    <Property Id="ALLUSERS" Secure="yes"/>
++    <Property Id="ReinstallModeText">omus</Property>
++
++    <!-- To avoid placing shortcuts all over the desktop / start menu during a
++    silent installation the NOSC=1 option can be passed to omit shortcuts.
++    This is useful if bundled with other applications like Vidalia that manage
++    configuration and Tor related processes themselves.
++      -->
++    <Property Id="NOSC" Secure="yes"/>
++
++    <!-- Associate this package with the upgrade code for this series
++    to ensure that upgrade installations by Thandy or other means work
++    as expected.
++    The OnlyDetect option must be false to ensure that existing files
++    from an older version are removed and replaced with current files.
++      -->
++    <Upgrade Id="$(var.UpgradeCode)">
++      <UpgradeVersion
++        Property="UPGRADEFOUND"
++        OnlyDetect="no"
++        Minimum="0.0.1"
++        IncludeMinimum="yes"
++        Maximum="$(var.ThisProductVersion)"
++        IncludeMaximum="no"
++      />
++    </Upgrade>
++
+ 
+     <Directory Id="TARGETDIR" Name="SourceDir">
+-      <Directory Id="ProgramFilesFolder" Name="ProgramFilesDir">
+-        <Directory Id="INSTALLDIR" Name="Vidalia">
++      <Directory Id="LocalAppDataFolder" Name="LocalAppData">
++       <Directory Id="LocalProgramsFolder" Name="Programs">
++
++         <!-- Until proper support for per-user installs is available we manage Programs folder.
++         Note that this directory will be left in place if it is in use by any other app.
++           -->
++         <Component Id="LocalProgramsFolderRef" Guid="$(var.CurrLocalProgramsGUID)">
++           <CreateFolder/>
++           <RemoveFolder Id="RemoveLocalProgramsFolder" On="uninstall" />
++           <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++             <RegistryValue Name="LocalProgramsFolderRef" Value="1" Type="integer" KeyPath="yes" />
++           </RegistryKey>
++         </Component>
++
++         <Directory Id="LocalProgramsInstDir" Name="Vidalia">
+ 
+           <!-- Main Vidalia application files -->
+-          <Component Id="VidaliaExecutable" Guid="*">
++          <Component Id="VidaliaExecutable" Guid="$(var.CurrExecutableGUID)">
++            <CreateFolder/>
++            <RemoveFolder Id="RemoveLocalProgramsInstDir" On="uninstall" />
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="Version" Value="$(var.ThisProductVersion)" Type="string" KeyPath="yes" />
++            </RegistryKey>
+             <File Id="VidaliaExe" DiskId="1"
+-                  Name="vidalia.exe" Source="@Vidalia_BINARY_DIR@\src\vidalia\vidalia.exe" />
+-          </Component>
+-
+-          <!-- Vidalia-related documents -->
+-          <Component Id="VidaliaDocuments" Guid="6A51C86C-A7D4-407f-9B84-7ADCE016E939">
+-            <File Id="VidaliaReadme" DiskId="1"
+-                  Name="README" Source="@Vidalia_SOURCE_DIR@\README" />
+-            <File Id="VidaliaCredits" DiskId="1"
+-                  Name="CREDITS" Source="@Vidalia_SOURCE_DIR@\CREDITS" />
+-            <File Id="VidaliaChangeLog" DiskId="1"
+-                  Name="CHANGELOG" Source="@Vidalia_SOURCE_DIR@\CHANGELOG" />
+-            <File Id="VidaliaLicense" DiskId="1"
+-                  Name="LICENSE" Source="@Vidalia_SOURCE_DIR@\LICENSE" />
+-            <File Id="VidaliaLicenseGplV2" DiskId="1"
+-                  Name="LICENSE-GPLV2" Source="@Vidalia_SOURCE_DIR@\LICENSE-GPLV2" />
+-            <File Id="VidaliaLicenseGplV3" DiskId="1"
+-                  Name="LICENSE-GPLV3" Source="@Vidalia_SOURCE_DIR@\LICENSE-GPLV3" />
+-            <File Id="VidaliaLicenseLgplV3" DiskId="1"
+-                  Name="LICENSE-LGPLV3" Source="@Vidalia_SOURCE_DIR@\LICENSE-LGPLV3" />
+-            <File Id="VidaliaLicenseOpenSSL" DiskId="1"
+-                  Name="LICENSE-OPENSSL" Source="@Vidalia_SOURCE_DIR@\LICENSE-OPENSSL" />
++                  Name="vidalia.exe" Source="src\vidalia\vidalia.exe" />
+           </Component>
+ 
+           <!-- Qt-related library files -->
+-          <Component Id="QtLibrary" Guid="00F354CB-B313-4100-8900-11293A66B385">
++          <Component Id="QtLibrary" Guid="$(var.CurrQtLibsGUID)">
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="QtLibrary" Value="1" Type="integer" KeyPath="yes" />
++            </RegistryKey>
+             <File Id="QtCore4Dll" DiskId="1"
+-                  Name="QtCore4.dll" Source="@QT_BINARY_DIR@\QtCore4.dll" />
++                  Name="QtCore4.dll" Source="bin\QtCore4.dll" />
+             <File Id="QtGui4Dll" DiskId="1"
+-                  Name="QtGui4.dll" Source="@QT_BINARY_DIR@\QtGui4.dll" />
++                  Name="QtGui4.dll" Source="bin\QtGui4.dll" />
+             <File Id="QtNetwork4Dll" DiskId="1"
+-                  Name="QtNetwork4.dll" Source="@QT_BINARY_DIR@\QtNetwork4.dll" />
++                  Name="QtNetwork4.dll" Source="bin\QtNetwork4.dll" />
+             <File Id="QtXml4Dll" DiskId="1"
+-                  Name="QtXml4.dll" Source="@QT_BINARY_DIR@\QtXml4.dll" />
++                  Name="QtXml4.dll" Source="bin\QtXml4.dll" />
++            <File Id="QtSvg4Dll" DiskId="1"
++                  Name="QtSvg4.dll" Source="bin\QtSvg4.dll" />
+           </Component>
+ 
+           <!-- MinGW-related library files -->
+-          <Component Id="MinGWLibrary" Guid="2287E844-F9CD-4129-8BD0-50D071698194">
++          <Component Id="MinGWLibrary" Guid="$(var.CurrMingwLibsGUID)">
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="MinGWLibrary" Value="1" Type="integer" KeyPath="yes" />
++            </RegistryKey>
+             <File Id="MinGWDll" DiskId="1"
+-                  Name="mingwm10.dll" Source="@MINGW_BINARY_DIR@\mingwm10.dll" />
++                  Name="mingwm10.dll" Source="bin\mingwm10.dll" />
++            <File Id="gnurxdll" DiskId="1"
++                  Name="libgnurx-0.dll" Source="bin\libgnurx-0.dll" />
+           </Component>
+ 
+           <!-- OpenSSL-related library files -->
+-          <Component Id="OpenSSLLibrary" Guid="C3EDC2EC-D0B1-452a-83A6-85B0BC94735B">
++          <Component Id="OpenSSLLibrary" Guid="$(var.CurrCryptoLibsGUID)">
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="OpenSSLLibrary" Value="1" Type="integer" KeyPath="yes" />
++            </RegistryKey>
+             <File Id="ssleay32dll" DiskId="1"
+-                  Name="ssleay32.dll" Source="@OPENSSL_BINARY_DIR@\ssleay32.dll" />
++                  Name="ssleay32-0.9.8.dll" Source="bin\ssleay32-0.9.8.dll" />
++            <File Id="cryptoeay32dll" DiskId="1"
++                  Name="cryptoeay32-0.9.8.dll" Source="bin\cryptoeay32-0.9.8.dll" />
++            <File Id="zlibdll" DiskId="1"
++                  Name="zlib1.dll" Source="bin\zlib1.dll" />
++          </Component>
++
++          <!-- Place this here until argument parsing with quoted escapes works as expected. -->
++          <Component Id="PolipoConfig" Guid="$(var.CurrPolipoConfigGUID)">
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="PolipoConfigFile" Value="1" Type="integer" KeyPath="yes" />
++            </RegistryKey>
++            <File
++              Id="PolipoConfigFile"
++              Name="polipocfg.txt"
++              Source="pkg/win32/polipo.conf"
++              Vital="yes"
++              ReadOnly="no"
++              DiskId="1"
++            />
++          </Component>
++         </Directory>
++        </Directory>
++
++        <Directory Id="INSTALLDIR" Name="Vidalia">
++          <Component Id="GeoIPCache" Guid="$(var.CurrGeoIPCacheGUID)">
++            <CreateFolder/>
++            <RemoveFolder Id="RemoveINSTALLDIR" On="uninstall" />
++            <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
++              <RegistryValue Name="GeoIPCacheFile" Value="1" Type="integer" KeyPath="yes" />
++            </RegistryKey>
++            <File
++              Id="GeoIPCacheFile"
++              Name="geoip-cache"
++              Source="pkg/geoip-cache"
++              Vital="no"
++              ReadOnly="no"
++              DiskId="1"
++            /> 
+           </Component>
+         </Directory>
+       </Directory>
+ 
+       <Directory Id="ProgramMenuFolder" Name="Programs">
+         <Directory Id="ShortcutFolder" Name="Vidalia">
+-          <Component Id="AddVidaliaToStartMenu" Guid="0F2CEE2C-8730-432e-8A8F-E49AF78AF28C">
++          <Component Id="AddVidaliaToStartMenu" Guid="$(var.CurrStartMenuGUID)">
++            <Condition><![CDATA[NOSC <> 1]]> </Condition>
+             <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
+               <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
+             </RegistryKey>
+             <Shortcut Id="VidaliaStartMenuShortcut"
+-                      Name="Vidalia" Target="[INSTALLDIR]vidalia.exe"
+-                      Directory="ShortcutFolder" WorkingDirectory="INSTALLDIR"
++                      Name="Vidalia" Target="[LocalProgramsInstDir]vidalia.exe"
++                      Directory="ShortcutFolder" WorkingDirectory="LocalProgramsInstDir"
+                       Icon="vidalia.ico" IconIndex="0" />
+             <RemoveFolder Id="RemoveShortcutFolder" On="uninstall" />
+           </Component>
+@@ -91,22 +200,24 @@
+       </Directory>
+ 
+       <Directory Id="DesktopFolder" Name="Desktop">
+-        <Component Id="AddVidaliaToDesktop" Guid="A7688EE5-4EDE-4429-A2D9-C8B9BD85AB5A">
++        <Component Id="AddVidaliaToDesktop" Guid="$(var.CurrDesktopGUID)">
++          <Condition><![CDATA[NOSC <> 1]]> </Condition>
+           <RegistryKey Root="HKCU" Key="Software\Vidalia" Action="createAndRemoveOnUninstall">
+             <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
+           </RegistryKey>
+           <Shortcut Id="VidaliaDesktopShortcut"
+-                    Name="Vidalia" Target="[INSTALLDIR]vidalia.exe"
+-                    Directory="DesktopFolder" WorkingDirectory="INSTALLDIR"
++                    Name="Vidalia" Target="[LocalProgramsInstDir]vidalia.exe"
++                    Directory="DesktopFolder" WorkingDirectory="LocalProgramsInstDir"
+                     Icon="vidalia.ico" IconIndex="0" />
+         </Component>
+       </Directory>
+ 
+-      <Component Id="AddToStartupItems" Guid="E7BC3F3C-86BA-4a08-966C-F3F8D8CB3AF4">
++      <Component Id="AddToStartupItems" Guid="$(var.CurrStartupGUID)">
++        <Condition><![CDATA[NOSC <> 1]]> </Condition>
+         <RegistryKey Root="HKCU"
+                      Key="Software\Microsoft\Windows\CurrentVersion\Run"
+                      Action="createAndRemoveOnUninstall">
+-          <RegistryValue Name="Vidalia" Value='"[INSTALLDIR]vidalia.exe"' Type="string" />
++          <RegistryValue Name="Vidalia" Value='"[LocalProgramsInstDir]vidalia.exe"' Type="string" />
+         </RegistryKey>
+       </Component>
+     </Directory>
+@@ -115,14 +226,16 @@
+     <Feature Id="Complete" Title="Vidalia"
+              Level="1" Display="expand" ConfigurableDirectory="INSTALLDIR"
+              Description="Vidalia is application that helps you control, monitor, and configure the Tor software.">
+-      <Feature Id="MainApplication" Title="Vidalia @VERSION@"
++      <Feature Id="MainApplication" Title="Vidalia $(var.ThisProductVersionDisp)"
+                AllowAdvertise="no" Absent="disallow" Level="1"
+                Description="Main application">
++        <ComponentRef Id="LocalProgramsFolderRef" />
+         <ComponentRef Id="VidaliaExecutable" />
+-        <ComponentRef Id="VidaliaDocuments" />
+         <ComponentRef Id="QtLibrary" />
+         <ComponentRef Id="MinGWLibrary" />
+         <ComponentRef Id="OpenSSLLibrary" />
++        <ComponentRef Id="GeoIPCache" />
++        <ComponentRef Id="PolipoConfig" />
+       </Feature>
+       <Feature Id="Shortcuts" Title="Shortcuts"
+                AllowAdvertise="no" Absent="allow" Level="1"
+@@ -145,10 +258,15 @@
+       </Feature>
+     </Feature>
+ 
++    <!-- Upgrade installation sequence. -->
++    <InstallExecuteSequence>
++      <RemoveExistingProducts After="InstallValidate" />
++    </InstallExecuteSequence>
++
+     <!-- Set the UI options -->
+-    <UIRef Id="WixUI_Custom" />
+-    <Icon Id="vidalia.ico" SourceFile="@Vidalia_SOURCE_DIR@\src\vidalia\res\icons\vidalia.ico" />
+-    <WixVariable Id="WixUIBannerBmp" Value="@Vidalia_SOURCE_DIR@\pkg\win32\msi-header.bmp" />
+-    <WixVariable Id="WixUIDialogBmp" Value="@Vidalia_SOURCE_DIR@\pkg\win32\msi-welcome.bmp" />
++    <UIRef Id="WixUI_Tor" />
++    <Icon Id="vidalia.ico" SourceFile="src\vidalia\res\icons\vidalia.ico" />
++    <WixVariable Id="WixUIBannerBmp" Value="pkg\win32\msi-header.bmp" />
++    <WixVariable Id="WixUIDialogBmp" Value="pkg\win32\msi-welcome.bmp" />
+   </Product>
+ </Wix>
+diff -Naur orig-vidalia/src/common/win32.cpp mod-vidalia/src/common/win32.cpp
+--- orig-vidalia/src/common/win32.cpp	2008-02-29 04:30:11.928307000 +0000
++++ mod-vidalia/src/common/win32.cpp	2009-01-26 10:50:51.146745176 +0000
+@@ -67,16 +67,20 @@
+ QString
+ win32_program_files_folder()
+ {
+-  return win32_get_folder_location(
+-     CSIDL_PROGRAM_FILES, QDir::rootPath() + "\\Program Files");
++  QString local_appdata = win32_get_folder_location(CSIDL_LOCAL_APPDATA, "");
++  if (local_appdata != "")
++    return local_appdata + "\\Programs";
++  return win32_get_folder_location(CSIDL_PROGRAM_FILES, QDir::rootPath() + "\\Program Files");
+ }
+ 
+ /** Gets the location of the user's %APPDATA% folder. */
+ QString
+ win32_app_data_folder()
+ {
+-  return win32_get_folder_location(
+-      CSIDL_APPDATA, QDir::homePath() + "\\Application Data");
++  QString local_appdata = win32_get_folder_location(CSIDL_LOCAL_APPDATA, "");
++  if (local_appdata != "")
++    return local_appdata;
++  return win32_get_folder_location(CSIDL_APPDATA, QDir::homePath() + "\\Application Data");
+ }
+ 
+ /** Returns the value in keyName at keyLocation. 
+diff -Naur orig-vidalia/src/vidalia/config/torsettings.cpp mod-vidalia/src/vidalia/config/torsettings.cpp
+--- orig-vidalia/src/vidalia/config/torsettings.cpp	2008-11-10 01:10:01.532843000 +0000
++++ mod-vidalia/src/vidalia/config/torsettings.cpp	2009-01-26 10:53:08.283897160 +0000
+@@ -59,6 +59,7 @@
+ {
+ #if defined(Q_OS_WIN32)
+   QString programFiles = win32_program_files_folder();
++  QString appData = win32_app_data_folder();
+   if (QFileInfo(programFiles + "\\Vidalia Bundle\\Tor\\tor.exe").exists())
+     setDefault(SETTING_TOR_EXECUTABLE,
+                programFiles + "\\Vidalia Bundle\\Tor\\tor.exe");
+@@ -68,7 +69,14 @@
+   setDefault(SETTING_TOR_EXECUTABLE, "tor");
+ #endif
+ 
+-  setDefault(SETTING_TORRC,         Vidalia::dataDirectory() + "/torrc");
++#if defined(Q_OS_WIN32)
++  if (QFileInfo(appData + "\\Tor\\torrc.txt").exists())
++    setDefault(SETTING_TORRC, appData + "\\Tor\\torrc.txt");
++  else
++    setDefault(SETTING_TORRC,         Vidalia::dataDirectory() + "/torrc");
++#else
++   setDefault(SETTING_TORRC,         Vidalia::dataDirectory() + "/torrc");
++#endif
+   setDefault(SETTING_CONTROL_ADDR,  "127.0.0.1");
+   setDefault(SETTING_CONTROL_PORT,  9051);
+   setDefault(SETTING_AUTH_METHOD,   toString(DEFAULT_AUTH_METHOD));
+diff -Naur orig-vidalia/src/vidalia/config/vidaliasettings.cpp mod-vidalia/src/vidalia/config/vidaliasettings.cpp
+--- orig-vidalia/src/vidalia/config/vidaliasettings.cpp	2009-01-03 20:10:16.806554000 +0000
++++ mod-vidalia/src/vidalia/config/vidaliasettings.cpp	2009-01-26 10:54:13.761942984 +0000
+@@ -70,9 +70,16 @@
+   setDefault(SETTING_SHOW_MAINWINDOW_AT_START, true);
+   setDefault(SETTING_BROWSER_EXECUTABLE, "");
+   setDefault(SETTING_IM_EXECUTABLE, "");
+-  setDefault(SETTING_RUN_PROXY_AT_START, false);
+-  setDefault(SETTING_PROXY_EXECUTABLE, "");
+-  setDefault(SETTING_PROXY_EXECUTABLE_ARGUMENTS, QStringList());
++  setDefault(SETTING_RUN_PROXY_AT_START, true);
++#if defined(Q_WS_WIN)
++  QString programFiles = win32_program_files_folder();
++  QString appData = win32_app_data_folder();
++  setDefault(SETTING_PROXY_EXECUTABLE, programFiles + "\\Polipo\\polipo.exe");
++  setDefault(SETTING_PROXY_EXECUTABLE_ARGUMENTS, QString("-c polipocfg.txt").split(" "));
++#else
++  setDefault(SETTING_PROXY_EXECUTABLE, "polipo.exe");
++  setDefault(SETTING_PROXY_EXECUTABLE_ARGUMENTS, QString("-c polipo.conf").split(" "));
++#endif
+ #if defined(Q_WS_WIN)
+   setDefault(SETTING_CHECK_FOR_UPDATES, true);
+ #else
+diff -Naur orig-vidalia/src/vidalia/network/geoipresolver.cpp mod-vidalia/src/vidalia/network/geoipresolver.cpp
+--- orig-vidalia/src/vidalia/network/geoipresolver.cpp	2008-12-30 18:48:55.745877000 +0000
++++ mod-vidalia/src/vidalia/network/geoipresolver.cpp	2009-01-26 10:56:39.915724232 +0000
+@@ -24,13 +24,13 @@
+ #endif
+ 
+ /** Host for the geo ip information. */ 
+-#define GEOIP_HOST    "geoip.vidalia-project.net"
++#define GEOIP_HOST    "data.peertech.org"
+ /** The non-encrypted GeoIP service lives on port 80. */
+ #define GEOIP_PORT      80
+ /** The SSL GeoIP service runs on port 1443 (443 was taken). */
+-#define GEOIP_SSL_PORT  1443
++#define GEOIP_SSL_PORT  443
+ /** Page that we request the geo ip information from. */
+-#define GEOIP_PAGE    "/cgi-bin/geoip"
++#define GEOIP_PAGE    "/geoip"
+ 
+ 
+ /** Default constructor. */
+@@ -42,7 +42,13 @@
+ #if defined(USE_QSSLSOCKET)
+   QSslSocket::setDefaultCaCertificates(QList<QSslCertificate>());
+   if (! QSslSocket::addDefaultCaCertificates(":/geoip/cacert_root.crt"))
+-    vWarn("Failed to add the GeoIP CA certificate to the default CA "
++    vWarn("Failed to add the CACert root certificate to the default CA "
++          "certificate database.");
++  if (! QSslSocket::addDefaultCaCertificates(":/geoip/gd-class2-root.crt"))
++    vWarn("Failed to add the GoDaddy Class2 root certificate to the default CA "
++          "certificate database.");
++  if (! QSslSocket::addDefaultCaCertificates(":/geoip/entrust-secure-server-root.crt"))
++    vWarn("Failed to add the Entrust Secure Server root certificate to the default CA "
+           "certificate database.");
+ #endif
+ }
+diff -Naur orig-vidalia/src/vidalia/res/entrust-secure-server-root.crt mod-vidalia/src/vidalia/res/entrust-secure-server-root.crt
+--- orig-vidalia/src/vidalia/res/entrust-secure-server-root.crt	1970-01-01 00:00:00.000000000 +0000
++++ mod-vidalia/src/vidalia/res/entrust-secure-server-root.crt	2009-01-26 10:56:56.637182184 +0000
+@@ -0,0 +1,30 @@
++-----BEGIN CERTIFICATE-----
++MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UE
++BhMCVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50
++cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
++MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE
++AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1
++dGhvcml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQsw
++CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3
++dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh
++Yi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVkMTow
++OAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
++b24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0
++VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHIN
++iC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3wkrYKZImZNHk
++mGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcwggHT
++MBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHY
++pIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
++BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChs
++aW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBM
++aW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
++cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNo
++dHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAi
++gA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMC
++AQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYE
++FPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9
++B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKn
++CqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2Zcgx
++xufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd2cNgQ4xYDiKWL2KjLB+6
++rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
++-----END CERTIFICATE-----
+diff -Naur orig-vidalia/src/vidalia/res/gd-class2-root.crt mod-vidalia/src/vidalia/res/gd-class2-root.crt
+--- orig-vidalia/src/vidalia/res/gd-class2-root.crt	1970-01-01 00:00:00.000000000 +0000
++++ mod-vidalia/src/vidalia/res/gd-class2-root.crt	2009-01-26 10:57:05.420846864 +0000
+@@ -0,0 +1,24 @@
++-----BEGIN CERTIFICATE-----
++MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
++MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
++YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
++MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
++ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
++MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
++ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
++PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
++wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
++EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
++avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
++YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
++sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
++/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
++IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
++YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
++ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
++OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
++TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
++HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
++dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
++ReYNnyicsbkqWletNw+vHX/bvZ8=
++-----END CERTIFICATE-----
+diff -Naur orig-vidalia/src/vidalia/res/vidalia.qrc mod-vidalia/src/vidalia/res/vidalia.qrc
+--- orig-vidalia/src/vidalia/res/vidalia.qrc	2009-01-03 20:10:16.806554000 +0000
++++ mod-vidalia/src/vidalia/res/vidalia.qrc	2009-01-26 10:57:41.105421984 +0000
+@@ -285,5 +285,7 @@
+     </qresource>
+     <qresource prefix="/geoip">
+         <file>cacert_root.crt</file>
++        <file>gd-class2-root.crt</file>
++        <file>entrust-secure-server-root.crt</file>
+     </qresource>
+ </RCC>
+diff -Naur orig-vidalia/src/vidalia/updateprocess.cpp mod-vidalia/src/vidalia/updateprocess.cpp
+--- orig-vidalia/src/vidalia/updateprocess.cpp	2009-01-03 20:10:16.806554000 +0000
++++ mod-vidalia/src/vidalia/updateprocess.cpp	2009-01-26 10:59:07.190335088 +0000
+@@ -234,13 +234,23 @@
+ QString
+ UpdateProcess::updateExecutable()
+ {
+-  return "thandy.exe";
++#if defined(Q_OS_WIN32)
++  QString programFiles = win32_program_files_folder();
++  return programFiles + "\\Thandy\\thandy.exe";
++#else
++  return "thandy-client";
++#endif
+ }
+ 
+ QString
+ UpdateProcess::updateRepositoryDir()
+ {
++#if defined(Q_OS_WIN32)
++  QString appData = win32_app_data_folder();
++  return appData + "\\Thandy\\Tor Updates";
++#else
+   return QDir::convertSeparators(Vidalia::dataDirectory() + "/updates");
++#endif
+ }
+ 
+ QString

Added: torvm/trunk/build/win32/src/pkg/bundle.nsi
===================================================================
--- torvm/trunk/build/win32/src/pkg/bundle.nsi	                        (rev 0)
+++ torvm/trunk/build/win32/src/pkg/bundle.nsi	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,62 @@
+!include "MUI.nsh"
+!include "LogicLib.nsh"
+!include "FileFunc.nsh"
+  
+!define VERSION "0.0.2.0"
+!define INSTALLER "TorVMBundle.exe"
+!define WEBSITE "https://www.torproject.org/";
+!define LICENSE "LICENSE"
+ 
+SetCompressor /SOLID BZIP2
+RequestExecutionLevel admin
+OutFile ${INSTALLER}
+InstallDir "$PROGRAMFILES\TorVMInstPkgs"
+SetOverWrite on
+Name "Tor VM ${VERSION} Bundle"
+Caption "Tor VM ${VERSION} Bundle Setup"
+BrandingText "Tor VM Bundle Installer"
+CRCCheck on
+XPStyle on
+ShowInstDetails hide
+VIProductVersion "${VERSION}"
+VIAddVersionKey "ProductName" "Tor VM Bundle"
+VIAddVersionKey "Comments" "${WEBSITE}"
+VIAddVersionKey "LegalTrademarks" "Three line BSD"
+VIAddVersionKey "LegalCopyright" "�2004-2009, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
+VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
+VIAddVersionKey "FileVersion" "${VERSION}"
+
+!define MUI_ICON "torinst32.ico"
+!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_LANGUAGE "English"
+
+Section "TorVM" TorVM
+	SectionIn RO
+	SetOutPath $INSTDIR
+	Call ExtractPackages
+        Call RunInstallers
+	Call LaunchTorVM
+SectionEnd
+
+Function ExtractPackages
+	File "torvm.msi"
+	File "torbutton.msi"
+	File "thandy.msi"
+	File "polipo.msi"
+	File "vidalia.msi"
+FunctionEnd
+
+Function RunInstallers
+	ExecWait 'msiexec /i "$INSTDIR\torvm.msi" BUNDLE=1 /qn'
+	ExecWait 'msiexec /i "$INSTDIR\thandy.msi" NOSC=1 /qn'
+	ExecWait 'msiexec /i "$INSTDIR\polipo.msi" NOSC=1 /qn'
+	ExecWait 'msiexec /i "$INSTDIR\torbutton.msi" /qn'
+	ExecWait 'msiexec /i "$INSTDIR\vidalia.msi" NOSC=1 /qn'
+FunctionEnd
+
+Function LaunchTorVM
+	SetOutPath "$PROGRAMFILES\Tor VM"
+	Exec 'torvm.exe'
+FunctionEnd
+

Added: torvm/trunk/build/win32/src/pkg/header.bmp
===================================================================
(Binary files differ)


Property changes on: torvm/trunk/build/win32/src/pkg/header.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: torvm/trunk/build/win32/src/pkg/netinst.nsi
===================================================================
--- torvm/trunk/build/win32/src/pkg/netinst.nsi	                        (rev 0)
+++ torvm/trunk/build/win32/src/pkg/netinst.nsi	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,61 @@
+!include "MUI.nsh"
+!include "LogicLib.nsh"
+!include "FileFunc.nsh"
+  
+!define VERSION "0.0.2.0"
+!define INSTALLER "TorVMNetInstaller.exe"
+!define WEBSITE "https://www.torproject.org/";
+!define LICENSE "LICENSE"
+ 
+SetCompressor /SOLID BZIP2
+RequestExecutionLevel admin
+OutFile ${INSTALLER}
+InstallDir "$TEMP\TorVMInstTmp"
+SetOverWrite on
+Name "Tor VM Network Installer"
+Caption "Tor VM Network Installer"
+BrandingText "Tor VM Network Installer"
+CRCCheck on
+XPStyle on
+ShowInstDetails hide
+VIProductVersion "${VERSION}"
+VIAddVersionKey "ProductName" "Tor VM"
+VIAddVersionKey "Comments" "${WEBSITE}"
+VIAddVersionKey "LegalTrademarks" "Three line BSD"
+VIAddVersionKey "LegalCopyright" "�2004-2009, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
+VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
+VIAddVersionKey "FileVersion" "${VERSION}"
+
+!define MUI_ICON "torinst32.ico"
+!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_LANGUAGE "English"
+
+Section "TorVM" TorVM
+	SectionIn RO
+	SetOutPath $INSTDIR
+	Call ExtractPackages
+        Call RunInstallers
+        Call LaunchTorVM
+SectionEnd
+
+Function ExtractPackages
+	File "thandy.msi"
+FunctionEnd
+
+Function RunInstallers
+	ExecWait 'msiexec /i "$INSTDIR\thandy.msi" ALLUSERS=1 NOSC=1 /qn'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update "--repo=$PROGRAMFILES\Thandy\TorVM Updates" /bundleinfo/torvm/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update "--repo=$PROGRAMFILES\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update "--repo=$PROGRAMFILES\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update "--repo=$PROGRAMFILES\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update --install "--repo=$PROGRAMFILES\Thandy\TorVM Updates" /bundleinfo/torvm/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update --install "--repo=$PROGRAMFILES\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update --install "--repo=$PROGRAMFILES\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
+	ExecWait '"$PROGRAMFILES\Thandy\thandy.exe" update --install "--repo=$PROGRAMFILES\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
+FunctionEnd
+
+Function LaunchTorVM
+	SetOutPath "$PROGRAMFILES\Tor VM"
+	Exec 'torvm.exe'
+FunctionEnd

Added: torvm/trunk/build/win32/src/pkg/torinst32.ico
===================================================================
(Binary files differ)


Property changes on: torvm/trunk/build/win32/src/pkg/torinst32.ico
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: torvm/trunk/build/win32/src/pkg/torvm.wxs
===================================================================
--- torvm/trunk/build/win32/src/pkg/torvm.wxs	                        (rev 0)
+++ torvm/trunk/build/win32/src/pkg/torvm.wxs	2009-01-30 15:24:10 UTC (rev 18342)
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="Windows-1252" ?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi";>
+  <?define ThisProductVersion="0.0.2" ?>
+  <?define ThisProductVersionDisp="0.0.2" ?>
+  <?define UpgradeCode="3f874171-34a0-4af8-8c66-27a681ac5fb6" ?>
+  
+  <?define CurrProductGUID="8b88858f-1d36-461c-9541-e6ffddeb8e69" ?>
+  <?define CurrExecutableGUID="f41f7690-d4e6-4c14-a754-fde93b98bb7b" ?>
+  <?define CurrQemuGUID="9a986ae8-1c05-41f8-bd26-4e3d951dc446" ?>
+  <?define CurrBiosGUID="1671260a-0b61-4351-ba93-556fddefd4ce" ?>
+  <?define CurrPThreadLibsGUID="c5960568-ffc8-4c5c-8253-9954d095afdc" ?>
+  <?define CurrDiskImageGUID="72e2fe60-9aac-473b-890e-07ea827b42ce" ?>
+  <?define CurrDocumentsGUID="1163f2e3-a0d0-4f6c-a412-dc27f8e9b338" ?>
+  <?define CurrConfigFileGUID="cd65d655-faba-46d5-b9a8-3958335e9e08" ?>
+  <?define CurrStartMenuGUID="928c4898-19e4-4b7a-ad02-95aadb80d3ba" ?>
+  <?define CurrDesktopGUID="cc7b92b8-45a5-4958-b530-5e10a2582902" ?>
+  <?define CurrDocsOnDesktopGUID="e032e77d-dbfe-4fe8-a2a4-84b5ff20e6af" ?>
+  <?define CurrStartupGUID="37319e3d-57e4-4c06-860b-a0bc2a305963" ?>
+
+  <Product Name="Tor VM $(var.ThisProductVersionDisp)" Id="$(var.CurrProductGUID)"
+           Language="1033" Codepage="1252"
+           Version="$(var.ThisProductVersion)"
+           Manufacturer="vidalia-project.net"
+           UpgradeCode="$(var.UpgradeCode)">
+    
+    <Package Id="*" Keywords="Installer"
+             Description="Tor VM $(var.ThisProductVersionDisp) Installer"
+             Manufacturer="vidalia-project.net"
+             InstallerVersion="100" Compressed="yes"
+             Languages="1033"  SummaryCodepage="1252"
+             InstallPrivileges="elevated" />
+
+    <Media Id="1" Cabinet="TorVM.cab" CompressionLevel="high"
+           EmbedCab="yes" DiskPrompt="CD-ROM #1" />
+    <Property Id="DiskPrompt" Value="Tor VM $(var.ThisProductVersionDisp) Installation Volume [1]" />
+    <Property Id="ALLUSERS" Secure="yes"/>
+    <Property Id="ReinstallModeText">omus</Property>
+
+    <!-- Associate this package with the upgrade code for this series
+    to ensure that upgrade installations by Thandy or other means work
+    as expected.
+    The OnlyDetect option must be false to ensure that existing files
+    from an older version are removed and replaced with current files.
+      -->
+    <Upgrade Id="$(var.UpgradeCode)">
+      <UpgradeVersion
+        Property="UPGRADEFOUND"
+        OnlyDetect="no"
+        Minimum="0.0.1"
+        IncludeMinimum="yes"
+        Maximum="$(var.ThisProductVersion)"
+        IncludeMaximum="no"
+      />
+    </Upgrade>
+
+
+    <Directory Id="TARGETDIR" Name="SourceDir">
+      <Directory Id="ProgramFilesFolder" Name="ProgramFiles">
+       <Directory Id="ProgramsInstDir" Name="Tor VM">
+
+        <!-- Main Tor VM application files -->
+        <Component Id="TorVMExecutable" Guid="$(var.CurrExecutableGUID)">
+          <CreateFolder/>
+          <RemoveFolder Id="RemoveProgramsInstDir" On="uninstall" />
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="Version" Value="$(var.ThisProductVersionDisp)" Type="string" KeyPath="yes" />
+          </RegistryKey>
+          <File Id="TorVMExe" DiskId="1"
+                Name="torvm.exe" Source="Tor_VM\torvm.exe" />
+        </Component>
+
+        <!-- Qemu-related files -->
+        <Component Id="Qemu" Guid="$(var.CurrQemuGUID)">
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="Qemu" Value="1" Type="integer" KeyPath="yes" />
+          </RegistryKey>
+          <File Id="QemuEXE" DiskId="1"
+                Name="qemu.exe" Source="Tor_VM/bin/qemu.exe" />
+          <File Id="DevconEXE" DiskId="1"
+                Name="devcon.exe" Source="Tor_VM/bin/devcon.exe" />
+          <File Id="SDLDll" DiskId="1"
+                Name="SDL.dll" Source="Tor_VM/lib/SDL.dll" />
+          <File Id="NPFDriver" DiskId="1"
+                Name="tornpf.sys" Source="Tor_VM/lib/tornpf.sys" />
+          <File Id="PcapDll" DiskId="1"
+                Name="torpcap.dll" Source="Tor_VM/lib/torpcap.dll" />
+          <File Id="PacketDll" DiskId="1"
+                Name="torpkt.dll" Source="Tor_VM/lib/torpkt.dll" />
+          <File Id="TapInf" DiskId="1"
+                Name="tortap91.inf" Source="Tor_VM/lib/tortap91.inf" />
+          <File Id="TapDriver" DiskId="1"
+                Name="tortap91.sys" Source="Tor_VM/lib/tortap91.sys" />
+        </Component>
+
+        <!-- pthread library files -->
+        <Component Id="PThreadLibrary" Guid="$(var.CurrPThreadLibsGUID)">
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="PThreadLibrary" Value="1" Type="integer" KeyPath="yes" />
+          </RegistryKey>
+          <File Id="pthreadsDll" DiskId="1"
+                Name="pthreadGC2.dll" Source="Tor_VM/lib/pthreadGC2.dll" />
+        </Component>
+
+        <!-- Qemu BIOS files -->
+        <Component Id="Bios" Guid="$(var.CurrBiosGUID)">
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="Bios" Value="1" Type="integer" KeyPath="yes" />
+          </RegistryKey>
+          <File Id="zlibdll" DiskId="1"
+                Name="zlib1.dll" Source="bin\zlib1.dll" />
+        </Component>
+
+        <Component Id="DiskImage" Guid="$(var.CurrDiskImageGUID)">
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="DiskImageFile" Value="1" Type="integer" KeyPath="yes" />
+          </RegistryKey>
+          <File
+            Id="DiskImageFile"
+            Name="hdd.img"
+            Source="Tor_VM/lib/hdd.img"
+            Vital="yes"
+            ReadOnly="no"
+            DiskId="1"
+          /> 
+        </Component>
+
+        </Directory>
+      </Directory>
+
+      <Directory Id="ProgramMenuFolder" Name="Programs">
+        <Directory Id="ShortcutFolder" Name="Tor VM">
+          <Component Id="AddTorVMToStartMenu" Guid="$(var.CurrStartMenuGUID)">
+            <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+              <RegistryValue Name="StartMenuShortcut" Value="1" Type="integer" KeyPath="yes" />
+            </RegistryKey>
+            <Shortcut Id="TorVMStartMenuShortcut"
+                      Name="Tor VM" Target="[ProgramsInstDir]torvm.exe"
+                      Directory="ShortcutFolder" WorkingDirectory="ProgramsInstDir"
+                      Icon="torvm.ico" IconIndex="0" />
+            <RemoveFolder Id="RemoveShortcutFolder" On="uninstall" />
+          </Component>
+        </Directory>
+      </Directory>
+
+      <Directory Id="DesktopFolder" Name="Desktop">
+        <Component Id="AddTorVMToDesktop" Guid="$(var.CurrDesktopGUID)">
+          <RegistryKey Root="HKCU" Key="Software\Tor VM" Action="createAndRemoveOnUninstall">
+            <RegistryValue Name="DesktopShortcut" Value="1" Type="integer" KeyPath="yes" />
+          </RegistryKey>
+          <Shortcut Id="TorVMDesktopShortcut"
+                    Name="Tor VM" Target="[ProgramsInstDir]torvm.exe"
+                    Directory="DesktopFolder" WorkingDirectory="ProgramsInstDir"
+                    Icon="torvm.ico" IconIndex="0" />
+        </Component>
+      </Directory>
+
+      <Component Id="AddToStartupItems" Guid="$(var.CurrStartupGUID)">
+        <RegistryKey Root="HKCU"
+                     Key="Software\Microsoft\Windows\CurrentVersion\Run"
+                     Action="createAndRemoveOnUninstall">
+          <RegistryValue Name="Tor VM" Value='"[ProgramsInstDir]vidalia.exe"' Type="string" />
+        </RegistryKey>
+      </Component>
+    </Directory>
+
+    <!-- Build up the feature hierarchy -->
+    <Feature Id="Complete" Title="Tor VM"
+             Level="1" Display="expand"
+             Description="Tor VM is an experimental virtual machine implementation of Tor for Windows.">
+      <Feature Id="MainApplication" Title="Tor VM $(var.ThisProductVersionDisp)"
+               AllowAdvertise="no" Absent="disallow" Level="1"
+               Description="Main application">
+        <ComponentRef Id="TorVMExecutable" />
+        <ComponentRef Id="Qemu" />
+        <ComponentRef Id="PThreadLibrary" />
+        <ComponentRef Id="Bios" />
+        <ComponentRef Id="DiskImage" />
+      </Feature>
+      <Feature Id="Shortcuts" Title="Shortcuts"
+               AllowAdvertise="no" Absent="allow" Level="1"
+               Description="Add a shortcut to Tor VM to your Start menu or Desktop.">
+        <Feature Id="StartMenuShortcuts" Title="Add to Start menu"
+                 AllowAdvertise="no" Absent="allow" Level="1"
+                 Description="Add Tor VM to your Start menu">
+          <ComponentRef Id="AddTorVMToStartMenu" />
+        </Feature>
+        <Feature Id="DesktopShortcuts" Title="Add to Desktop"
+                 AllowAdvertise="no" Absent="allow" Level="1"
+                 Description="Add Tor VM to your Desktop">
+          <ComponentRef Id="AddTorVMToDesktop" />
+        </Feature>
+        <Feature Id="RunAtStartup" Title="Run at Startup"
+                 AllowAdvertise="no" Absent="allow" Level="1"
+                 Description="Run Tor VM automatically when your system starts">
+          <ComponentRef Id="AddToStartupItems" />
+        </Feature>
+      </Feature>
+    </Feature>
+
+    <!-- Upgrade installation sequence. -->
+    <InstallExecuteSequence>
+      <RemoveExistingProducts After="InstallValidate" />
+    </InstallExecuteSequence>
+
+    <!-- Set the UI options -->
+    <UIRef Id="WixUI_Tor" />
+    <Icon Id="torvm.ico" SourceFile="torvm.ico" />
+    <WixVariable Id="WixUIBannerBmp" Value="header.bmp" />
+    <WixVariable Id="WixUIDialogBmp" Value="welcome.bmp" />
+  </Product>
+</Wix>

Added: torvm/trunk/build/win32/src/pkg/welcome.bmp
===================================================================
(Binary files differ)


Property changes on: torvm/trunk/build/win32/src/pkg/welcome.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream