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

[tor-commits] [tor-messenger-build/master] Bug 17346: Update Tor Messenger branding



commit 327c183f17910c545540d7d9882acc374d96203b
Author: Sukhbir Singh <sukhbir@xxxxxxxxxxxxxx>
Date:   Sun Oct 25 22:45:35 2015 -0400

    Bug 17346: Update Tor Messenger branding
---
 projects/instantbird/branding/about.png            |  Bin 10718 -> 9880 bytes
 projects/instantbird/branding/name.patch           |   16 +-
 projects/instantbird/branding/osx.patch            |    2 +-
 projects/tor-messenger/build                       |   16 +-
 projects/tor-messenger/build.osx                   |   16 +-
 projects/tor-messenger/config                      |   10 +-
 projects/tor-messenger/start-tor-messenger         |  372 ++++++++++++++++++++
 projects/tor-messenger/start-tor-messenger.desktop |   35 ++
 projects/tor-messenger/start-unnamed-messenger     |  372 --------------------
 .../tor-messenger/start-unnamed-messenger.desktop  |   34 --
 projects/tor-messenger/tor-messenger.ico           |  Bin 0 -> 23934 bytes
 projects/tor-messenger/tor-messenger.nsi           |  168 +++++++++
 projects/tor-messenger/unnamed-messenger.ico       |  Bin 23934 -> 0 bytes
 projects/tor-messenger/unnamed-messenger.nsi       |  168 ---------
 14 files changed, 605 insertions(+), 604 deletions(-)

diff --git a/projects/instantbird/branding/about.png b/projects/instantbird/branding/about.png
index 99e5969..5d7f579 100644
Binary files a/projects/instantbird/branding/about.png and b/projects/instantbird/branding/about.png differ
diff --git a/projects/instantbird/branding/name.patch b/projects/instantbird/branding/name.patch
index a8b7f29..b183212 100644
--- a/projects/instantbird/branding/name.patch
+++ b/projects/instantbird/branding/name.patch
@@ -10,8 +10,8 @@ index e5b5348..276722b 100755
 -!define CompanyName           "Instantbird"
 -!define URLInfoAbout          "http://www.instantbird.com/";
 -!define URLUpdateInfo         "http://www.instantbird.com/";
-+!define BrandFullNameInternal "Unnamed Messenger"
-+!define CompanyName           "Unnamed Messenger"
++!define BrandFullNameInternal "Tor Messenger"
++!define CompanyName           "Tor Messenger"
 +!define URLInfoAbout          "https://www.torproject.org";
 +!define URLUpdateInfo         "https://www.torproject.org";
  
@@ -25,11 +25,11 @@ index c569ebb..2d6a5d8 100644
  
 -<!ENTITY  brandShortName        "Instantbird">
 -<!ENTITY  brandFullName         "Instantbird - Nightly">
-+<!ENTITY  brandShortName        "Unnamed Messenger">
-+<!ENTITY  brandFullName         "Unnamed Messenger - Beta">
++<!ENTITY  brandShortName        "Tor Messenger">
++<!ENTITY  brandFullName         "Tor Messenger - Beta">
  <!ENTITY  brandMotto            "'Cause geeks can also do magic!">
 -<!ENTITY  vendorShortName       "Instantbird">
-+<!ENTITY  vendorShortName       "Unnamed Messenger">
++<!ENTITY  vendorShortName       "Tor Messenger">
 diff --git a/im/branding/messenger/locales/en-US/brand.properties b/im/branding/messenger/locales/en-US/brand.properties
 index f949ced..93528a3 100644
 --- a/im/branding/messenger/locales/en-US/brand.properties
@@ -41,6 +41,6 @@ index f949ced..93528a3 100644
 -brandShortName=Instantbird
 -brandFullName=Instantbird - Nightly
 -vendorShortName=Instantbird
-+brandShortName=Unnamed Messenger
-+brandFullName=Unnamed Messenger - Beta
-+vendorShortName=Unnamed Messenger
++brandShortName=Tor Messenger
++brandFullName=Tor Messenger - Beta
++vendorShortName=Tor Messenger
diff --git a/projects/instantbird/branding/osx.patch b/projects/instantbird/branding/osx.patch
index a64e751..196d671 100644
--- a/projects/instantbird/branding/osx.patch
+++ b/projects/instantbird/branding/osx.patch
@@ -6,4 +6,4 @@ diff --git a/im/branding/messenger/configure.sh b/im/branding/messenger/configur
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  
 -MOZ_APP_DISPLAYNAME=Instantbird
-+MOZ_APP_DISPLAYNAME="Unnamed Messenger"
++MOZ_APP_DISPLAYNAME="Tor Messenger"
diff --git a/projects/tor-messenger/build b/projects/tor-messenger/build
index 352d1f9..40641e0 100644
--- a/projects/tor-messenger/build
+++ b/projects/tor-messenger/build
@@ -27,11 +27,11 @@ tar xf [% c('input_files_by_name/bundle-data') %] -C bundle/Messenger/TorMesseng
 
 [% IF c("var/linux") %]
 tar xf [% c('input_files_by_name/gcc') %]
-chmod 755 start-unnamed-messenger start-unnamed-messenger.desktop execdesktop
+chmod 755 start-tor-messenger start-tor-messenger.desktop execdesktop
 
-cp start-unnamed-messenger.desktop bundle/
-mv start-unnamed-messenger.desktop bundle/Messenger/
-mv start-unnamed-messenger bundle/Messenger/
+cp start-tor-messenger.desktop bundle/
+mv start-tor-messenger.desktop bundle/Messenger/
+mv start-tor-messenger bundle/Messenger/
 mv execdesktop bundle/Messenger/
 
 mkdir -p bundle/Messenger/lib
@@ -59,13 +59,13 @@ mv tor-browser_en-US/Browser/TorBrowser/Tor tor-launcher@xxxxxxxxxxxxxx/TorBrows
 mv tor-browser_en-US/Browser/TorBrowser/Data/Tor tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Data/Tor
 rm -Rf tor-browser_en-US
 cd ../../../
-mv bundle unnamed-messenger
+mv bundle tor-messenger
 [% IF c('var/windows') -%]
-makensis unnamed-messenger.nsi
-mv unnamed-messenger-install.exe [% dest_dir _ '/' _ c('filename') %]
+makensis tor-messenger.nsi
+mv tor-messenger-install.exe [% dest_dir _ '/' _ c('filename') %]
 [% ELSE -%]
 [% c('tar', {
-        tar_src => [ 'unnamed-messenger' ],
+        tar_src => [ 'tor-messenger' ],
         tar_args => '-cJf ' _ dest_dir _ '/' _ c('filename'),
         }) %]
 [% END -%]
diff --git a/projects/tor-messenger/build.osx b/projects/tor-messenger/build.osx
index 1b02d75..16e9b47 100644
--- a/projects/tor-messenger/build.osx
+++ b/projects/tor-messenger/build.osx
@@ -2,7 +2,7 @@
 set -e
 rootdir=$(pwd)
 tar xf [% c('input_files_by_name/instantbird') %]
-mv UnnamedMessenger.app Unnamed\ Messenger.app
+mv TorMessenger.app Tor\ Messenger.app
 
 tar xf [% c('input_files_by_name/libdmg') %]
 export PATH="$(pwd)/libdmg-hfsplus:$PATH"
@@ -18,26 +18,26 @@ sed -i 's/^ControlPort .*/ControlPort [% c("var/tor_control_port") %]/' TorBrows
 mkdir -p tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Data
 mv TorBrowser.app/TorBrowser/Tor tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Tor
 mv TorBrowser.app/TorBrowser/Data/Tor tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Data/Tor
-mv tor-launcher@xxxxxxxxxxxxxx $rootdir/Unnamed\ Messenger.app/Contents/Resources/extensions/
+mv tor-launcher@xxxxxxxxxxxxxx $rootdir/Tor\ Messenger.app/Contents/Resources/extensions/
 cd ..
 
 mkdir ctypes-otr
 cd ctypes-otr
 tar xf $rootdir/[% c('input_files_by_name/ctypes-otr') %]
-mv ctypes-otr* $rootdir/Unnamed\ Messenger.app/Contents/Resources/extensions/ctypes-otr@tormessenger
+mv ctypes-otr* $rootdir/Tor\ Messenger.app/Contents/Resources/extensions/ctypes-otr@tormessenger
 cd ..
 
-mkdir Unnamed\ Messenger.app/TorMessenger
-tar xf [% c('input_files_by_name/bundle-data') %] -C Unnamed\ Messenger.app/TorMessenger
+mkdir Tor\ Messenger.app/TorMessenger
+tar xf [% c('input_files_by_name/bundle-data') %] -C Tor\ Messenger.app/TorMessenger
 
 mkdir dmg
-mv Unnamed\ Messenger.app dmg
+mv Tor\ Messenger.app dmg
 cd dmg
 find . -executable -exec chmod 750 {} \;
 find . ! -executable -exec chmod 640 {} \;
 find . -type f | sed -e 's/^\.\///' | sort | xargs -i echo "{}={}" > ../filelist.txt
 find . -type l | sed -e 's/^\.\///' | sort | xargs -i echo "{}={}" >> ../filelist.txt
 
-mkisofs -D -V "Unnamed Messenger" -no-pad -R -apple -o ../Unnamed\ Messenger-uncompressed.dmg -path-list ../filelist.txt -graft-points -gid 20 -dir-mode 0750 -new-dir-mode 0750
+mkisofs -D -V "Tor Messenger" -no-pad -R -apple -o ../Tor\ Messenger-uncompressed.dmg -path-list ../filelist.txt -graft-points -gid 20 -dir-mode 0750 -new-dir-mode 0750
 cd ..
-dmg dmg Unnamed\ Messenger-uncompressed.dmg [% dest_dir _ '/' _ c('filename') %]
+dmg dmg Tor\ Messenger-uncompressed.dmg [% dest_dir _ '/' _ c('filename') %]
diff --git a/projects/tor-messenger/config b/projects/tor-messenger/config
index b38a263..0e1073a 100644
--- a/projects/tor-messenger/config
+++ b/projects/tor-messenger/config
@@ -1,6 +1,6 @@
 # vim: filetype=yaml sw=2
 version: 0.1.0b1
-filename: 'unnamed-messenger-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].[% c("var/filename_ext") %]'
+filename: 'tor-messenger-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].[% c("var/filename_ext") %]'
 input_files:
   - name: instantbird
     project: instantbird
@@ -15,13 +15,13 @@ input_files:
   - project: gcc
     name: gcc
     enable: '[% c("var/linux") %]'
-  - filename: start-unnamed-messenger
-  - filename: start-unnamed-messenger.desktop
+  - filename: start-tor-messenger
+  - filename: start-tor-messenger.desktop
   - filename: execdesktop
-  - filename: unnamed-messenger.nsi
+  - filename: tor-messenger.nsi
     enable: '[% c("var/windows") %]'
   - filename: cert_override.txt
-  - filename: unnamed-messenger.ico
+  - filename: tor-messenger.ico
     enable: '[% c("var/windows") %]'
   - project: libdmg-hfsplus
     name: libdmg
diff --git a/projects/tor-messenger/start-tor-messenger b/projects/tor-messenger/start-tor-messenger
new file mode 100755
index 0000000..6c85733
--- /dev/null
+++ b/projects/tor-messenger/start-tor-messenger
@@ -0,0 +1,372 @@
+#!/usr/bin/env bash
+#
+# This script is modified from the start-tor-browser script.
+#
+# GNU/Linux does not really require something like RelativeLink.c
+# However, we do want to have the same look and feel with similar features.
+#
+# Copyright 2015 The Tor Project.  See LICENSE for licensing information.
+
+complain_dialog_title="Tor Messenger"
+
+# First, make sure DISPLAY is set.  If it isn't, we're hosed; scream
+# at stderr and die.
+if [ "x$DISPLAY" = "x" ]; then
+    echo "$complain_dialog_title must be run within the X Window System." >&2
+    echo "Exiting." >&2
+    exit 1
+fi
+
+# Second, make sure this script wasn't started as 'sh start-tor-messenger' or
+# similar.
+if [ "x$BASH" = "x" ]; then
+    echo "$complain_dialog_title should be started as './start-tor-messenger'"
+    echo "Exiting." >&2
+    exit 1;
+fi
+
+# Do not (try to) connect to the session manager
+unset SESSION_MANAGER
+
+# Complain about an error, by any means necessary.
+# Usage: complain message
+# message must not begin with a dash.
+complain () {
+	# Trim leading newlines, to avoid breaking formatting in some dialogs.
+	complain_message="`echo "$1" | sed '/./,$!d'`"
+
+	# If we're being run in debug/verbose mode, complain to stderr.
+	if [ "$show_output" -eq 1 ]; then
+		echo "$complain_message" >&2
+		return
+	fi
+
+	# Otherwise, we're being run by a GUI program of some sort;
+	# try to pop up a message in the GUI in the nicest way
+	# possible.
+	#
+	# In mksh, non-existent commands return 127; I'll assume all
+	# other shells set the same exit code if they can't run a
+	# command.  (xmessage returns 1 if the user clicks the WM
+	# close button, so we do need to look at the exact exit code,
+	# not just assume the command failed to display a message if
+	# it returns non-zero.)
+
+	# First, try zenity.
+	zenity --error \
+		--title="$complain_dialog_title" \
+		--text="$complain_message"
+	if [ "$?" -ne 127 ]; then
+		return
+	fi
+
+	# Try kdialog.
+	kdialog --title "$complain_dialog_title" \
+		--error "$complain_message"
+	if [ "$?" -ne 127 ]; then
+		return
+	fi
+
+	# Try xmessage.
+	xmessage -title "$complain_dialog_title" \
+		-center \
+		-buttons OK \
+		-default OK \
+		-xrm '*message.scrollVertical: Never' \
+		"$complain_message"
+	if [ "$?" -ne 127 ]; then
+		return
+	fi
+
+	# Try gxmessage.  This one isn't installed by default on
+	# Debian with the default GNOME installation, so it seems to
+	# be the least likely program to have available, but it might
+	# be used by one of the 'lightweight' Gtk-based desktop
+	# environments.
+	gxmessage -title "$complain_dialog_title" \
+		-center \
+		-buttons GTK_STOCK_OK \
+		-default OK \
+		"$complain_message"
+	if [ "$?" -ne 127 ]; then
+		return
+	fi
+}
+
+if [ "`id -u`" -eq 0 ]; then
+	complain "The Tor Messenger Bundle should not be run as root.  Exiting."
+	exit 1
+fi
+
+tbb_usage () {
+    printf "\nTor Messenger Script Options\n"
+    printf "  --verbose         Display Tor and Instantbird output in the terminal\n"
+    printf "  --log [file]      Record Tor and Instantbird output in file (default: tor-messenger.log)\n"
+    printf "  --detach          Detach from terminal and run Tor Messenger in the background.\n"
+    printf "  --register-app    Register Tor Messenger as a desktop app for this user\n"
+    printf "  --unregister-app  Unregister Tor Messenger as a desktop app for this user\n"
+}
+log_output=0
+show_output=0
+detach=0
+show_usage=0
+register_desktop_app=0
+logfile=/dev/null
+while :
+do
+    case "$1" in
+      --detach)
+          detach=1
+          shift
+          ;;
+      -v | --verbose | -d | --debug)
+          show_output=1
+          verbose_arg="$2"
+          shift
+          ;;
+      -h | "-?" | --help | -help)
+          show_usage=1
+          show_output=1
+          shift
+          ;;
+      -l | --log)
+          if [ -z "$2" -o "${2:0:1}" == "-" ]; then
+             printf "Logging Tor Messenger debug information to tor-messenger.log\n"
+             logfile="../tor-messenger.log"
+          elif [ "${2:0:1}" == "/" -o "${2:0:1}" == "~" ]; then
+             printf "Logging Tor Messenger debug information to %s\n" "$2"
+             logfile="$2"
+             shift
+          else
+             printf "Logging Tor Messenger debug information to %s\n" "$2"
+             logfile="../$2"
+             shift
+          fi
+          log_output=1
+          shift
+          ;;
+      --register-app)
+          register_desktop_app=1
+          show_output=1
+          shift
+          ;;
+      --unregister-app)
+          register_desktop_app=-1
+          show_output=1
+          shift
+          ;;
+      *) # No more options
+          break
+          ;;
+    esac
+done
+
+# We can't detach and show output at the same time..
+if [ "$show_output" -eq 1 -a "$detach" -eq 1 ]; then
+    detach=0
+fi
+
+if [ "$show_output" -eq 0 ]; then
+    # If the user hasn't requested 'debug mode' or --help, close stdout and stderr,
+    # to keep Instantbird and the stuff loaded by/for it (including the
+    # system's shared-library loader) from printing messages to
+    # $HOME/.xsession-errors or other files. (Users wouldn't have seen
+    # messages there anyway.)
+    exec > "$logfile"
+    exec 2> "$logfile"
+fi
+
+# If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority
+# before we change HOME below.  (See xauth(1) and #1945.)  XDM and KDM rely
+# on applications using this default value.
+if [ -z "$XAUTHORITY" ]; then
+	XAUTHORITY=~/.Xauthority
+	export XAUTHORITY
+fi
+
+# If this script is being run through a symlink, we need to know where
+# in the filesystem the script itself is, not where the symlink is.
+myname="$0"
+if [ -L "$myname" ]; then
+	# XXX readlink is not POSIX, but is present in GNU coreutils
+	# and on FreeBSD.  Unfortunately, the -f option (which follows
+	# a whole chain of symlinks until it reaches a non-symlink
+	# path name) is a GNUism, so we have to have a fallback for
+	# FreeBSD.  Fortunately, FreeBSD has realpath instead;
+	# unfortunately, that's also non-POSIX and is not present in
+	# GNU coreutils.
+	#
+	# If this launcher were a C program, we could just use the
+	# realpath function, which *is* POSIX.  Too bad POSIX didn't
+	# make that function accessible to shell scripts.
+
+	# If realpath is available, use it; it Does The Right Thing.
+	possibly_my_real_name="`realpath "$myname" 2>/dev/null`"
+	if [ "$?" -eq 0 ]; then
+		myname="$possibly_my_real_name"
+	else
+		# realpath is not available; hopefully readlink -f works.
+		myname="`readlink -f "$myname" 2>/dev/null`"
+		if [ "$?" -ne 0 ]; then
+			# Ugh.
+			complain "start-tor-messenger cannot be run using a symlink on this operating system."
+		fi
+	fi
+fi
+
+# Try to be agnostic to where we're being started from, chdir to where
+# the script is.
+mydir="`dirname "$myname"`"
+test -d "$mydir" && cd "$mydir"
+
+# If ${PWD} results in a zero length string, we can try something else...
+if [ ! "${PWD}" ]; then
+	# "hacking around some braindamage"
+	PWD="`pwd`"
+	surveysays="This system has a messed up shell.\n"
+fi
+
+# This is a fix for an ibus issue on some Linux systems. See #9353 for more
+# details. The symlink needs to be created before we change HOME.
+if [ ! -d ".config/ibus" ]; then
+  mkdir -p .config/ibus
+  ln -nsf ~/.config/ibus/bus .config/ibus
+fi
+
+# Fix up .desktop Icon and Exec Paths, and update the .desktop file from the
+# canonical version if it was changed by the updater.
+cp start-tor-messenger.desktop ../
+sed -i -e "s,^Name=.*,Name=Tor Messenger,g" ../start-tor-messenger.desktop
+sed -i -e "s,^Icon=.*,Icon=$PWD/chrome/icons/default/default48.png,g" ../start-tor-messenger.desktop
+sed -i -e "s,^Exec=.*,Exec=sh -c '\"$PWD/start-tor-messenger\" --detach || ([ !  -x \"$PWD/start-tor-messenger\" ] \&\& \"\$(dirname \"\$*\")\"/Messenger/start-tor-messenger --detach)' dummy %k,g" ../start-tor-messenger.desktop
+
+if [ "$register_desktop_app" -eq 1 ]; then
+	mkdir -p "$HOME/.local/share/applications/"
+	cp ../start-tor-messenger.desktop "$HOME/.local/share/applications/"
+	update-desktop-database "$HOME/.local/share/applications/"
+	printf "Tor Messenger has been registered as a desktop app for this user in ~/.local/share/applications/\n"
+	exit 0
+fi
+
+if [ "$register_desktop_app" -eq -1 ]; then
+	if [ -e "$HOME/.local/share/applications/start-tor-messenger.desktop" ]; then
+		rm -f "$HOME/.local/share/applications/start-tor-messenger.desktop"
+		update-desktop-database "$HOME/.local/share/applications/"
+		printf "Tor Messenger has been removed as a user desktop app (from ~/.local/share/applications/)\n"
+	else
+		printf "Tor Messenger does not appear to be a desktop app (not present in ~/.local/share/applications/)\n"
+	fi
+	exit 0
+fi
+
+HOME="${PWD}"
+export HOME
+
+SYSARCHITECTURE=$(getconf LONG_BIT)
+TORARCHITECTURE=$(expr "$(file extensions/tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Tor/tor)" : '.*ELF \([[:digit:]]*\)')
+
+if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
+   complain "Wrong architecture? 32-bit vs. 64-bit."
+   exit 1
+fi
+
+LD_LIBRARY_PATH="${HOME}/lib/:${HOME}/extensions/tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Tor:${HOME}/extensions/ctypes-otr@tormessenger/chrome/content"
+export LD_LIBRARY_PATH
+
+function setControlPortPasswd() {
+    local ctrlPasswd=$1
+
+    if test -z "$ctrlPasswd" -o "$ctrlPasswd" = $'\"secret\"' ; then
+        unset TOR_CONTROL_PASSWD
+        return
+    fi
+
+    if test "${ctrlPasswd:0:1}" = $'\"'; then  # First 2 chars were '"
+        printf "Using system Tor process.\n"
+        export TOR_CONTROL_PASSWD
+    else
+        complain "There seems to have been a quoting problem with your \
+TOR_CONTROL_PASSWD environment variable."
+        cat <<EOF
+
+The Tor ControlPort password should be given inside double quotes, inside single
+quotes, i.e. if the ControlPort password is â??secretâ?? (without curly quotes) then
+we must start this script after setting the environment variable exactly like
+this:
+
+  \$ TOR_CONTROL_PASSWD='"secret"' $myname
+
+EOF
+    fi
+}
+
+# Using a system-installed Tor process with Tor Messenger:
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# The Tor ControlPort password should be given inside double quotes, inside
+# single quotes, i.e. if the ControlPort password is â??secretâ?? (without
+# curly quotes) then we must set the environment variable *exactly* like
+# this:
+#
+# TOR_CONTROL_PASSWD='"secret"'
+#
+# Yes, the variable MUST be double-quoted, then single-quoted, exactly as
+# shown. This is used by TorButton and Tor Launcher to authenticate to Tor's
+# ControlPort, and is necessary for using TB with a system-installed Tor.
+#
+# Additionally, if using a system-installed Tor, the following about:config
+# options should be set (values in <> mean they are the value taken from your
+# torrc):
+#
+# SETTING NAME                            VALUE
+# extensions.torbutton.banned_ports       [...],<SocksPort>,<ControlPort>
+# extensions.torbutton.block_disk         false
+# extensions.torbutton.custom.socks_host  127.0.0.1
+# extensions.torbutton.custom.socks_port  <SocksPort>
+# extensions.torbutton.inserted_button    true
+# extensions.torbutton.launch_warning     false
+# extensions.torbutton.loglevel           2
+# extensions.torbutton.logmethod          0
+# extensions.torbutton.settings_method    custom
+# extensions.torbutton.socks_port         <SocksPort>
+# extensions.torbutton.use_privoxy        false
+# extensions.torlauncher.control_port      <ControlPort>
+# extensions.torlauncher.loglevel          2
+# extensions.torlauncher.logmethod         0
+# extensions.torlauncher.prompt_at_startup false
+# extensions.torlauncher.start_tor         false
+#
+# where the '[...]' in the banned_ports option means "leave anything that was
+# already in the preference alone, just append the things specified after it".
+
+# Either set `TOR_CONTROL_PASSWD` before running ./start-tor-messenger, or put
+# your password in the following line where the word â??secretâ?? is:
+setControlPortPasswd ${TOR_CONTROL_PASSWD:='"secret"'}
+
+cd "${HOME}"
+
+# We pass all additional command-line arguments we get to Instantbird.
+#
+# The --class parameter was added to fix bug 11102.
+
+if [ "$show_usage" -eq 1 ]; then
+    # Display Instantbird help, then our help
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+        -profile TorMessenger/Data/Browser/profile.default --help 2>/dev/null
+    tbb_usage
+elif [ "$detach" -eq 1 ] ; then
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+       -profile TorMessenger/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null &
+    disown "$!"
+elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+        -profile TorMessenger/Data/Browser/profile.default "${@}" 2>&1 </dev/null | \
+        tee "$logfile"
+elif [ "$show_output" -eq 1 ]; then
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+        -profile TorMessenger/Data/Browser/profile.default "${@}" < /dev/null
+else
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+        -profile TorMessenger/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null
+fi
+
+exit $?
diff --git a/projects/tor-messenger/start-tor-messenger.desktop b/projects/tor-messenger/start-tor-messenger.desktop
new file mode 100644
index 0000000..606cf32
--- /dev/null
+++ b/projects/tor-messenger/start-tor-messenger.desktop
@@ -0,0 +1,35 @@
+#!/usr/bin/env ./Messenger/execdesktop
+#
+# This file is a self-modifying .desktop file that can be run from the shell.
+# It preserves arguments and environment for the start-tor-messenger script.
+#
+# Run './start-tor-messenger.desktop --help' to display the full set of
+# options.
+#
+# When invoked from the shell, this file must always be in a Tor Messenger
+# root directory. When run from the file manager or desktop GUI, it is
+# relocatable.
+#
+# After first invocation, it will update itself with the absolute path to the
+# current TBB location, to support relocation of this .desktop file for GUI
+# invocation. You can also add Tor Messenger to your desktop's application
+# menu by running './start-tor-messenger.desktop --register-app'
+#
+# If you use --register-app, and then relocate your TBB directory, Tor
+# Messenger will no longer launch from your desktop's app launcher/dock.
+# However, if you re-run --register-app from inside that new directory, the
+# script will correct the absolute paths and re-register itself.
+#
+# This file will also still function if the path changes when TBB is used as a
+# portable app, so long as it is run directly from that new directory, either
+# via the shell or via the file manager.
+
+[Desktop Entry]
+Type=Application
+Name=Tor Messenger Setup
+GenericName=Instant Messenger
+Comment=Tor Messenger is +1 for privacy and -1 for mass surveillance
+Categories=Network;Chat;Security;
+Exec=sh -c '"$(dirname "$*")"/Messenger/start-tor-messenger --detach || ([ ! -x "$(dirname "$*")"/Messenger/start-tor-messenger ] && "$(dirname "$*")"/start-tor-messenger --detach)' dummy %k
+X-TorMessenger-ExecShell=./Messenger/start-tor-messenger --detach
+Icon=instant-messenger
diff --git a/projects/tor-messenger/start-unnamed-messenger b/projects/tor-messenger/start-unnamed-messenger
deleted file mode 100755
index 4f98506..0000000
--- a/projects/tor-messenger/start-unnamed-messenger
+++ /dev/null
@@ -1,372 +0,0 @@
-#!/usr/bin/env bash
-#
-# This script is modified from the start-tor-browser script.
-#
-# GNU/Linux does not really require something like RelativeLink.c
-# However, we do want to have the same look and feel with similar features.
-#
-# Copyright 2015 The Tor Project.  See LICENSE for licensing information.
-
-complain_dialog_title="Unnamed Messenger"
-
-# First, make sure DISPLAY is set.  If it isn't, we're hosed; scream
-# at stderr and die.
-if [ "x$DISPLAY" = "x" ]; then
-    echo "$complain_dialog_title must be run within the X Window System." >&2
-    echo "Exiting." >&2
-    exit 1
-fi
-
-# Second, make sure this script wasn't started as 'sh start-unnamed-messenger' or
-# similar.
-if [ "x$BASH" = "x" ]; then
-    echo "$complain_dialog_title should be started as './start-unnamed-messenger'"
-    echo "Exiting." >&2
-    exit 1;
-fi
-
-# Do not (try to) connect to the session manager
-unset SESSION_MANAGER
-
-# Complain about an error, by any means necessary.
-# Usage: complain message
-# message must not begin with a dash.
-complain () {
-	# Trim leading newlines, to avoid breaking formatting in some dialogs.
-	complain_message="`echo "$1" | sed '/./,$!d'`"
-
-	# If we're being run in debug/verbose mode, complain to stderr.
-	if [ "$show_output" -eq 1 ]; then
-		echo "$complain_message" >&2
-		return
-	fi
-
-	# Otherwise, we're being run by a GUI program of some sort;
-	# try to pop up a message in the GUI in the nicest way
-	# possible.
-	#
-	# In mksh, non-existent commands return 127; I'll assume all
-	# other shells set the same exit code if they can't run a
-	# command.  (xmessage returns 1 if the user clicks the WM
-	# close button, so we do need to look at the exact exit code,
-	# not just assume the command failed to display a message if
-	# it returns non-zero.)
-
-	# First, try zenity.
-	zenity --error \
-		--title="$complain_dialog_title" \
-		--text="$complain_message"
-	if [ "$?" -ne 127 ]; then
-		return
-	fi
-
-	# Try kdialog.
-	kdialog --title "$complain_dialog_title" \
-		--error "$complain_message"
-	if [ "$?" -ne 127 ]; then
-		return
-	fi
-
-	# Try xmessage.
-	xmessage -title "$complain_dialog_title" \
-		-center \
-		-buttons OK \
-		-default OK \
-		-xrm '*message.scrollVertical: Never' \
-		"$complain_message"
-	if [ "$?" -ne 127 ]; then
-		return
-	fi
-
-	# Try gxmessage.  This one isn't installed by default on
-	# Debian with the default GNOME installation, so it seems to
-	# be the least likely program to have available, but it might
-	# be used by one of the 'lightweight' Gtk-based desktop
-	# environments.
-	gxmessage -title "$complain_dialog_title" \
-		-center \
-		-buttons GTK_STOCK_OK \
-		-default OK \
-		"$complain_message"
-	if [ "$?" -ne 127 ]; then
-		return
-	fi
-}
-
-if [ "`id -u`" -eq 0 ]; then
-	complain "The Unnamed Messenger Bundle should not be run as root.  Exiting."
-	exit 1
-fi
-
-tbb_usage () {
-    printf "\nUnnamed Messenger Script Options\n"
-    printf "  --verbose         Display Tor and Instantbird output in the terminal\n"
-    printf "  --log [file]      Record Tor and Instantbird output in file (default: unnamed-messenger.log)\n"
-    printf "  --detach          Detach from terminal and run Unnamed Messenger in the background.\n"
-    printf "  --register-app    Register Unnamed Messenger as a desktop app for this user\n"
-    printf "  --unregister-app  Unregister Unnamed Messenger as a desktop app for this user\n"
-}
-log_output=0
-show_output=0
-detach=0
-show_usage=0
-register_desktop_app=0
-logfile=/dev/null
-while :
-do
-    case "$1" in
-      --detach)
-          detach=1
-          shift
-          ;;
-      -v | --verbose | -d | --debug)
-          show_output=1
-          verbose_arg="$2"
-          shift
-          ;;
-      -h | "-?" | --help | -help)
-          show_usage=1
-          show_output=1
-          shift
-          ;;
-      -l | --log)
-          if [ -z "$2" -o "${2:0:1}" == "-" ]; then
-             printf "Logging Unnamed Messenger debug information to unnamed-messenger.log\n"
-             logfile="../unnamed-messenger.log"
-          elif [ "${2:0:1}" == "/" -o "${2:0:1}" == "~" ]; then
-             printf "Logging Unnamed Messenger debug information to %s\n" "$2"
-             logfile="$2"
-             shift
-          else
-             printf "Logging Unnamed Messenger debug information to %s\n" "$2"
-             logfile="../$2"
-             shift
-          fi
-          log_output=1
-          shift
-          ;;
-      --register-app)
-          register_desktop_app=1
-          show_output=1
-          shift
-          ;;
-      --unregister-app)
-          register_desktop_app=-1
-          show_output=1
-          shift
-          ;;
-      *) # No more options
-          break
-          ;;
-    esac
-done
-
-# We can't detach and show output at the same time..
-if [ "$show_output" -eq 1 -a "$detach" -eq 1 ]; then
-    detach=0
-fi
-
-if [ "$show_output" -eq 0 ]; then
-    # If the user hasn't requested 'debug mode' or --help, close stdout and stderr,
-    # to keep Instantbird and the stuff loaded by/for it (including the
-    # system's shared-library loader) from printing messages to
-    # $HOME/.xsession-errors or other files. (Users wouldn't have seen
-    # messages there anyway.)
-    exec > "$logfile"
-    exec 2> "$logfile"
-fi
-
-# If XAUTHORITY is unset, set it to its default value of $HOME/.Xauthority
-# before we change HOME below.  (See xauth(1) and #1945.)  XDM and KDM rely
-# on applications using this default value.
-if [ -z "$XAUTHORITY" ]; then
-	XAUTHORITY=~/.Xauthority
-	export XAUTHORITY
-fi
-
-# If this script is being run through a symlink, we need to know where
-# in the filesystem the script itself is, not where the symlink is.
-myname="$0"
-if [ -L "$myname" ]; then
-	# XXX readlink is not POSIX, but is present in GNU coreutils
-	# and on FreeBSD.  Unfortunately, the -f option (which follows
-	# a whole chain of symlinks until it reaches a non-symlink
-	# path name) is a GNUism, so we have to have a fallback for
-	# FreeBSD.  Fortunately, FreeBSD has realpath instead;
-	# unfortunately, that's also non-POSIX and is not present in
-	# GNU coreutils.
-	#
-	# If this launcher were a C program, we could just use the
-	# realpath function, which *is* POSIX.  Too bad POSIX didn't
-	# make that function accessible to shell scripts.
-
-	# If realpath is available, use it; it Does The Right Thing.
-	possibly_my_real_name="`realpath "$myname" 2>/dev/null`"
-	if [ "$?" -eq 0 ]; then
-		myname="$possibly_my_real_name"
-	else
-		# realpath is not available; hopefully readlink -f works.
-		myname="`readlink -f "$myname" 2>/dev/null`"
-		if [ "$?" -ne 0 ]; then
-			# Ugh.
-			complain "start-unnamed-messenger cannot be run using a symlink on this operating system."
-		fi
-	fi
-fi
-
-# Try to be agnostic to where we're being started from, chdir to where
-# the script is.
-mydir="`dirname "$myname"`"
-test -d "$mydir" && cd "$mydir"
-
-# If ${PWD} results in a zero length string, we can try something else...
-if [ ! "${PWD}" ]; then
-	# "hacking around some braindamage"
-	PWD="`pwd`"
-	surveysays="This system has a messed up shell.\n"
-fi
-
-# This is a fix for an ibus issue on some Linux systems. See #9353 for more
-# details. The symlink needs to be created before we change HOME.
-if [ ! -d ".config/ibus" ]; then
-  mkdir -p .config/ibus
-  ln -nsf ~/.config/ibus/bus .config/ibus
-fi
-
-# Fix up .desktop Icon and Exec Paths, and update the .desktop file from the
-# canonical version if it was changed by the updater.
-cp start-unnamed-messenger.desktop ../
-sed -i -e "s,^Name=.*,Name=Unnamed Messenger,g" ../start-unnamed-messenger.desktop
-sed -i -e "s,^Icon=.*,Icon=$PWD/chrome/icons/default/default48.png,g" ../start-unnamed-messenger.desktop
-sed -i -e "s,^Exec=.*,Exec=sh -c '\"$PWD/start-unnamed-messenger\" --detach || ([ !  -x \"$PWD/start-unnamed-messenger\" ] \&\& \"\$(dirname \"\$*\")\"/Messenger/start-unnamed-messenger --detach)' dummy %k,g" ../start-unnamed-messenger.desktop
-
-if [ "$register_desktop_app" -eq 1 ]; then
-	mkdir -p "$HOME/.local/share/applications/"
-	cp ../start-unnamed-messenger.desktop "$HOME/.local/share/applications/"
-	update-desktop-database "$HOME/.local/share/applications/"
-	printf "Unnamed Messenger has been registered as a desktop app for this user in ~/.local/share/applications/\n"
-	exit 0
-fi
-
-if [ "$register_desktop_app" -eq -1 ]; then
-	if [ -e "$HOME/.local/share/applications/start-unnamed-messenger.desktop" ]; then
-		rm -f "$HOME/.local/share/applications/start-unnamed-messenger.desktop"
-		update-desktop-database "$HOME/.local/share/applications/"
-		printf "Unnamed Messenger has been removed as a user desktop app (from ~/.local/share/applications/)\n"
-	else
-		printf "Unnamed Messenger does not appear to be a desktop app (not present in ~/.local/share/applications/)\n"
-	fi
-	exit 0
-fi
-
-HOME="${PWD}"
-export HOME
-
-SYSARCHITECTURE=$(getconf LONG_BIT)
-TORARCHITECTURE=$(expr "$(file extensions/tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Tor/tor)" : '.*ELF \([[:digit:]]*\)')
-
-if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
-   complain "Wrong architecture? 32-bit vs. 64-bit."
-   exit 1
-fi
-
-LD_LIBRARY_PATH="${HOME}/lib/:${HOME}/extensions/tor-launcher@xxxxxxxxxxxxxx/TorBrowser/Tor:${HOME}/extensions/ctypes-otr@tormessenger/chrome/content"
-export LD_LIBRARY_PATH
-
-function setControlPortPasswd() {
-    local ctrlPasswd=$1
-
-    if test -z "$ctrlPasswd" -o "$ctrlPasswd" = $'\"secret\"' ; then
-        unset TOR_CONTROL_PASSWD
-        return
-    fi
-
-    if test "${ctrlPasswd:0:1}" = $'\"'; then  # First 2 chars were '"
-        printf "Using system Tor process.\n"
-        export TOR_CONTROL_PASSWD
-    else
-        complain "There seems to have been a quoting problem with your \
-TOR_CONTROL_PASSWD environment variable."
-        cat <<EOF
-
-The Tor ControlPort password should be given inside double quotes, inside single
-quotes, i.e. if the ControlPort password is â??secretâ?? (without curly quotes) then
-we must start this script after setting the environment variable exactly like
-this:
-
-  \$ TOR_CONTROL_PASSWD='"secret"' $myname
-
-EOF
-    fi
-}
-
-# Using a system-installed Tor process with Tor Messenger:
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-# The Tor ControlPort password should be given inside double quotes, inside
-# single quotes, i.e. if the ControlPort password is â??secretâ?? (without
-# curly quotes) then we must set the environment variable *exactly* like
-# this:
-#
-# TOR_CONTROL_PASSWD='"secret"'
-#
-# Yes, the variable MUST be double-quoted, then single-quoted, exactly as
-# shown. This is used by TorButton and Tor Launcher to authenticate to Tor's
-# ControlPort, and is necessary for using TB with a system-installed Tor.
-#
-# Additionally, if using a system-installed Tor, the following about:config
-# options should be set (values in <> mean they are the value taken from your
-# torrc):
-#
-# SETTING NAME                            VALUE
-# extensions.torbutton.banned_ports       [...],<SocksPort>,<ControlPort>
-# extensions.torbutton.block_disk         false
-# extensions.torbutton.custom.socks_host  127.0.0.1
-# extensions.torbutton.custom.socks_port  <SocksPort>
-# extensions.torbutton.inserted_button    true
-# extensions.torbutton.launch_warning     false
-# extensions.torbutton.loglevel           2
-# extensions.torbutton.logmethod          0
-# extensions.torbutton.settings_method    custom
-# extensions.torbutton.socks_port         <SocksPort>
-# extensions.torbutton.use_privoxy        false
-# extensions.torlauncher.control_port      <ControlPort>
-# extensions.torlauncher.loglevel          2
-# extensions.torlauncher.logmethod         0
-# extensions.torlauncher.prompt_at_startup false
-# extensions.torlauncher.start_tor         false
-#
-# where the '[...]' in the banned_ports option means "leave anything that was
-# already in the preference alone, just append the things specified after it".
-
-# Either set `TOR_CONTROL_PASSWD` before running ./start-tor-messenger, or put
-# your password in the following line where the word â??secretâ?? is:
-setControlPortPasswd ${TOR_CONTROL_PASSWD:='"secret"'}
-
-cd "${HOME}"
-
-# We pass all additional command-line arguments we get to Instantbird.
-#
-# The --class parameter was added to fix bug 11102.
-
-if [ "$show_usage" -eq 1 ]; then
-    # Display Instantbird help, then our help
-    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Unnamed Messenger" \
-        -profile TorMessenger/Data/Browser/profile.default --help 2>/dev/null
-    tbb_usage
-elif [ "$detach" -eq 1 ] ; then
-    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Unnamed Messenger" \
-       -profile TorMessenger/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null &
-    disown "$!"
-elif [ "$log_output" -eq 1 -a "$show_output" -eq 1 ]; then
-    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Unnamed Messenger" \
-        -profile TorMessenger/Data/Browser/profile.default "${@}" 2>&1 </dev/null | \
-        tee "$logfile"
-elif [ "$show_output" -eq 1 ]; then
-    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Unnamed Messenger" \
-        -profile TorMessenger/Data/Browser/profile.default "${@}" < /dev/null
-else
-    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Unnamed Messenger" \
-        -profile TorMessenger/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null
-fi
-
-exit $?
diff --git a/projects/tor-messenger/start-unnamed-messenger.desktop b/projects/tor-messenger/start-unnamed-messenger.desktop
deleted file mode 100644
index 3c5f92f..0000000
--- a/projects/tor-messenger/start-unnamed-messenger.desktop
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env ./Messenger/execdesktop
-#
-# This file is a self-modifying .desktop file that can be run from the shell.
-# It preserves arguments and environment for the start-unnamed-messenger script.
-#
-# Run './start-unnamed-messenger.desktop --help' to display the full set of options.
-#
-# When invoked from the shell, this file must always be in a Unnamed Messenger
-# root directory. When run from the file manager or desktop GUI, it is
-# relocatable.
-#
-# After first invocation, it will update itself with the absolute path to the
-# current TBB location, to support relocation of this .desktop file for GUI
-# invocation. You can also add Unnamed Messenger to your desktop's application
-# menu by running './start-unnamed-messenger.desktop --register-app'
-#
-# If you use --register-app, and then relocate your TBB directory, Unnamed
-# Messenger will no longer launch from your desktop's app launcher/dock.
-# However, if you re-run --register-app from inside that new directory, the
-# script will correct the absolute paths and re-register itself.
-#
-# This file will also still function if the path changes when TBB is used as a
-# portable app, so long as it is run directly from that new directory, either
-# via the shell or via the file manager.
-
-[Desktop Entry]
-Type=Application
-Name=Unnamed Messenger Setup
-GenericName=Instant Messenger
-Comment=Unnamed Messenger is +1 for privacy and -1 for mass surveillance
-Categories=Network;Chat;Security;
-Exec=sh -c '"$(dirname "$*")"/Messenger/start-unnamed-messenger --detach || ([ ! -x "$(dirname "$*")"/Messenger/start-unnamed-messenger ] && "$(dirname "$*")"/start-unnamed-messenger --detach)' dummy %k
-X-TorMessenger-ExecShell=./Messenger/start-unnamed-messenger --detach
-Icon=instant-messenger
diff --git a/projects/tor-messenger/tor-messenger.ico b/projects/tor-messenger/tor-messenger.ico
new file mode 100644
index 0000000..cce2759
Binary files /dev/null and b/projects/tor-messenger/tor-messenger.ico differ
diff --git a/projects/tor-messenger/tor-messenger.nsi b/projects/tor-messenger/tor-messenger.nsi
new file mode 100644
index 0000000..eabe6f3
--- /dev/null
+++ b/projects/tor-messenger/tor-messenger.nsi
@@ -0,0 +1,168 @@
+;NSIS Installer for Tor Messenger
+;Based on NSIS Installer for Tor Browser Bundle
+;Written by Moritz Bartl
+;released under Public Domain
+
+;--------------------------------
+;Modern" UI
+
+  !include "MUI2.nsh"
+
+;--------------------------------
+;General
+ 
+  ; location of Tor Messenger to put into installer
+  !define TBBSOURCE ".\tor-messenger\"  
+
+  Name "Tor Messenger"
+  OutFile "tor-messenger-install.exe"
+
+  ;Default installation folder
+  InstallDir "$DESKTOP\Tor Messenger"
+  
+  ;Best (but slowest) compression
+  SetCompressor /SOLID lzma
+  SetCompressorDictSize 32
+
+  ;Request application privileges for Windows Vista
+  RequestExecutionLevel user
+
+;--------------------------------
+;Interface Configuration
+
+  !define MUI_ICON   "tor-messenger.ico"
+  !define MUI_ABORTWARNING
+
+;--------------------------------
+;Modern UI settings
+  !define MUI_FINISHPAGE_NOREBOOTSUPPORT     ; we don't require a reboot
+  !define MUI_FINISHPAGE_RUN
+  !define MUI_FINISHPAGE_RUN_FUNCTION "StartTorMessenger"
+  !define MUI_FINISHPAGE_SHOWREADME ; misuse for option to create shortcut; less ugly than MUI_PAGE_COMPONENTS
+  !define MUI_FINISHPAGE_SHOWREADME_TEXT "&Add Start Menu && Desktop shortcuts"
+  !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CreateShortCuts"
+;--------------------------------
+;Pages
+
+  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckIfTargetDirectoryExists
+  !insertmacro MUI_PAGE_DIRECTORY
+  !insertmacro MUI_PAGE_INSTFILES
+  !insertmacro MUI_PAGE_FINISH
+
+;--------------------------------
+;Languages
+
+  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
+  !insertmacro MUI_LANGUAGE "French"
+  !insertmacro MUI_LANGUAGE "German"
+  !insertmacro MUI_LANGUAGE "Spanish"
+  !insertmacro MUI_LANGUAGE "SpanishInternational"
+  !insertmacro MUI_LANGUAGE "SimpChinese"
+  !insertmacro MUI_LANGUAGE "TradChinese"
+  !insertmacro MUI_LANGUAGE "Japanese"
+  !insertmacro MUI_LANGUAGE "Korean"
+  !insertmacro MUI_LANGUAGE "Italian"
+  !insertmacro MUI_LANGUAGE "Dutch"
+  !insertmacro MUI_LANGUAGE "Danish"
+  !insertmacro MUI_LANGUAGE "Swedish"
+  !insertmacro MUI_LANGUAGE "Norwegian"
+  !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
+  !insertmacro MUI_LANGUAGE "Finnish"
+  !insertmacro MUI_LANGUAGE "Greek"
+  !insertmacro MUI_LANGUAGE "Russian"
+  !insertmacro MUI_LANGUAGE "Portuguese"
+  !insertmacro MUI_LANGUAGE "PortugueseBR"
+  !insertmacro MUI_LANGUAGE "Polish"
+  !insertmacro MUI_LANGUAGE "Ukrainian"
+  !insertmacro MUI_LANGUAGE "Czech"
+  !insertmacro MUI_LANGUAGE "Slovak"
+  !insertmacro MUI_LANGUAGE "Croatian"
+  !insertmacro MUI_LANGUAGE "Bulgarian"
+  !insertmacro MUI_LANGUAGE "Hungarian"
+  !insertmacro MUI_LANGUAGE "Thai"
+  !insertmacro MUI_LANGUAGE "Romanian"
+  !insertmacro MUI_LANGUAGE "Latvian"
+  !insertmacro MUI_LANGUAGE "Macedonian"
+  !insertmacro MUI_LANGUAGE "Estonian"
+  !insertmacro MUI_LANGUAGE "Turkish"
+  !insertmacro MUI_LANGUAGE "Lithuanian"
+  !insertmacro MUI_LANGUAGE "Slovenian"
+  !insertmacro MUI_LANGUAGE "Serbian"
+  !insertmacro MUI_LANGUAGE "SerbianLatin"
+  !insertmacro MUI_LANGUAGE "Arabic"
+  !insertmacro MUI_LANGUAGE "Farsi"
+  !insertmacro MUI_LANGUAGE "Hebrew"
+  !insertmacro MUI_LANGUAGE "Indonesian"
+  !insertmacro MUI_LANGUAGE "Mongolian"
+  !insertmacro MUI_LANGUAGE "Luxembourgish"
+  !insertmacro MUI_LANGUAGE "Albanian"
+  !insertmacro MUI_LANGUAGE "Breton"
+  !insertmacro MUI_LANGUAGE "Belarusian"
+  !insertmacro MUI_LANGUAGE "Icelandic"
+  !insertmacro MUI_LANGUAGE "Malay"
+  !insertmacro MUI_LANGUAGE "Bosnian"
+  !insertmacro MUI_LANGUAGE "Kurdish"
+  !insertmacro MUI_LANGUAGE "Irish"
+  !insertmacro MUI_LANGUAGE "Uzbek"
+  !insertmacro MUI_LANGUAGE "Galician"
+  !insertmacro MUI_LANGUAGE "Afrikaans"
+  !insertmacro MUI_LANGUAGE "Catalan"
+  !insertmacro MUI_LANGUAGE "Esperanto"
+
+;--------------------------------
+;Multi Language support: Read strings from separate file
+
+; !include torbrowser-langstrings.nsi
+
+;--------------------------------
+;Reserve Files
+  
+  ;If you are using solid compression, files that are required before
+  ;the actual installation should be stored first in the data block,
+  ;because this will make your installer start faster.
+  
+  !insertmacro MUI_RESERVEFILE_LANGDLL
+
+;--------------------------------
+;Installer Sections
+
+Section "Tor Messenger" SecTBB
+
+  SetOutPath "$INSTDIR"
+  File /r "${TBBSOURCE}\*.*"
+  SetOutPath "$INSTDIR\Messenger"
+  CreateShortCut "$INSTDIR\Start Tor Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe"
+
+SectionEnd
+
+Function CreateShortcuts
+
+  CreateShortCut "$SMPROGRAMS\Start Tor Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe" 
+  CreateShortCut "$DESKTOP\Start Tor Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe"
+
+FunctionEnd
+;--------------------------------
+;Installer Functions
+
+Function .onInit
+
+  !insertmacro MUI_LANGDLL_DISPLAY
+
+FunctionEnd
+
+;--------------------------------
+;Helper Functions
+
+Function CheckIfTargetDirectoryExists
+${If} ${FileExists} "$INSTDIR\*.*"
+ MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade Tor Messenger, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort
+   Abort
+ NoAbort:
+${EndIf}
+FunctionEnd
+
+
+Function StartTorMessenger
+ExecShell "open" "$INSTDIR/Start Tor Messenger.lnk"
+FunctionEnd
+
diff --git a/projects/tor-messenger/unnamed-messenger.ico b/projects/tor-messenger/unnamed-messenger.ico
deleted file mode 100644
index cce2759..0000000
Binary files a/projects/tor-messenger/unnamed-messenger.ico and /dev/null differ
diff --git a/projects/tor-messenger/unnamed-messenger.nsi b/projects/tor-messenger/unnamed-messenger.nsi
deleted file mode 100644
index 0f0e5cd..0000000
--- a/projects/tor-messenger/unnamed-messenger.nsi
+++ /dev/null
@@ -1,168 +0,0 @@
-;NSIS Installer for Unnamed Messenger
-;Based on NSIS Installer for Tor Browser Bundle
-;Written by Moritz Bartl
-;released under Public Domain
-
-;--------------------------------
-;Modern" UI
-
-  !include "MUI2.nsh"
-
-;--------------------------------
-;General
- 
-  ; location of Unnamed Messenger to put into installer
-  !define TBBSOURCE ".\unnamed-messenger\"  
-
-  Name "Unnamed Messenger"
-  OutFile "unnamed-messenger-install.exe"
-
-  ;Default installation folder
-  InstallDir "$DESKTOP\Unnamed Messenger"
-  
-  ;Best (but slowest) compression
-  SetCompressor /SOLID lzma
-  SetCompressorDictSize 32
-
-  ;Request application privileges for Windows Vista
-  RequestExecutionLevel user
-
-;--------------------------------
-;Interface Configuration
-
-  !define MUI_ICON   "unnamed-messenger.ico"
-  !define MUI_ABORTWARNING
-
-;--------------------------------
-;Modern UI settings
-  !define MUI_FINISHPAGE_NOREBOOTSUPPORT     ; we don't require a reboot
-  !define MUI_FINISHPAGE_RUN
-  !define MUI_FINISHPAGE_RUN_FUNCTION "StartUnnamedMessenger"
-  !define MUI_FINISHPAGE_SHOWREADME ; misuse for option to create shortcut; less ugly than MUI_PAGE_COMPONENTS
-  !define MUI_FINISHPAGE_SHOWREADME_TEXT "&Add Start Menu && Desktop shortcuts"
-  !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "CreateShortCuts"
-;--------------------------------
-;Pages
-
-  !define MUI_PAGE_CUSTOMFUNCTION_LEAVE CheckIfTargetDirectoryExists
-  !insertmacro MUI_PAGE_DIRECTORY
-  !insertmacro MUI_PAGE_INSTFILES
-  !insertmacro MUI_PAGE_FINISH
-
-;--------------------------------
-;Languages
-
-  !insertmacro MUI_LANGUAGE "English" ;first language is the default language
-  !insertmacro MUI_LANGUAGE "French"
-  !insertmacro MUI_LANGUAGE "German"
-  !insertmacro MUI_LANGUAGE "Spanish"
-  !insertmacro MUI_LANGUAGE "SpanishInternational"
-  !insertmacro MUI_LANGUAGE "SimpChinese"
-  !insertmacro MUI_LANGUAGE "TradChinese"
-  !insertmacro MUI_LANGUAGE "Japanese"
-  !insertmacro MUI_LANGUAGE "Korean"
-  !insertmacro MUI_LANGUAGE "Italian"
-  !insertmacro MUI_LANGUAGE "Dutch"
-  !insertmacro MUI_LANGUAGE "Danish"
-  !insertmacro MUI_LANGUAGE "Swedish"
-  !insertmacro MUI_LANGUAGE "Norwegian"
-  !insertmacro MUI_LANGUAGE "NorwegianNynorsk"
-  !insertmacro MUI_LANGUAGE "Finnish"
-  !insertmacro MUI_LANGUAGE "Greek"
-  !insertmacro MUI_LANGUAGE "Russian"
-  !insertmacro MUI_LANGUAGE "Portuguese"
-  !insertmacro MUI_LANGUAGE "PortugueseBR"
-  !insertmacro MUI_LANGUAGE "Polish"
-  !insertmacro MUI_LANGUAGE "Ukrainian"
-  !insertmacro MUI_LANGUAGE "Czech"
-  !insertmacro MUI_LANGUAGE "Slovak"
-  !insertmacro MUI_LANGUAGE "Croatian"
-  !insertmacro MUI_LANGUAGE "Bulgarian"
-  !insertmacro MUI_LANGUAGE "Hungarian"
-  !insertmacro MUI_LANGUAGE "Thai"
-  !insertmacro MUI_LANGUAGE "Romanian"
-  !insertmacro MUI_LANGUAGE "Latvian"
-  !insertmacro MUI_LANGUAGE "Macedonian"
-  !insertmacro MUI_LANGUAGE "Estonian"
-  !insertmacro MUI_LANGUAGE "Turkish"
-  !insertmacro MUI_LANGUAGE "Lithuanian"
-  !insertmacro MUI_LANGUAGE "Slovenian"
-  !insertmacro MUI_LANGUAGE "Serbian"
-  !insertmacro MUI_LANGUAGE "SerbianLatin"
-  !insertmacro MUI_LANGUAGE "Arabic"
-  !insertmacro MUI_LANGUAGE "Farsi"
-  !insertmacro MUI_LANGUAGE "Hebrew"
-  !insertmacro MUI_LANGUAGE "Indonesian"
-  !insertmacro MUI_LANGUAGE "Mongolian"
-  !insertmacro MUI_LANGUAGE "Luxembourgish"
-  !insertmacro MUI_LANGUAGE "Albanian"
-  !insertmacro MUI_LANGUAGE "Breton"
-  !insertmacro MUI_LANGUAGE "Belarusian"
-  !insertmacro MUI_LANGUAGE "Icelandic"
-  !insertmacro MUI_LANGUAGE "Malay"
-  !insertmacro MUI_LANGUAGE "Bosnian"
-  !insertmacro MUI_LANGUAGE "Kurdish"
-  !insertmacro MUI_LANGUAGE "Irish"
-  !insertmacro MUI_LANGUAGE "Uzbek"
-  !insertmacro MUI_LANGUAGE "Galician"
-  !insertmacro MUI_LANGUAGE "Afrikaans"
-  !insertmacro MUI_LANGUAGE "Catalan"
-  !insertmacro MUI_LANGUAGE "Esperanto"
-
-;--------------------------------
-;Multi Language support: Read strings from separate file
-
-; !include torbrowser-langstrings.nsi
-
-;--------------------------------
-;Reserve Files
-  
-  ;If you are using solid compression, files that are required before
-  ;the actual installation should be stored first in the data block,
-  ;because this will make your installer start faster.
-  
-  !insertmacro MUI_RESERVEFILE_LANGDLL
-
-;--------------------------------
-;Installer Sections
-
-Section "Unnamed Messenger" SecTBB
-
-  SetOutPath "$INSTDIR"
-  File /r "${TBBSOURCE}\*.*"
-  SetOutPath "$INSTDIR\Messenger"
-  CreateShortCut "$INSTDIR\Start Unnamed Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe"
-
-SectionEnd
-
-Function CreateShortcuts
-
-  CreateShortCut "$SMPROGRAMS\Start Unnamed Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe" 
-  CreateShortCut "$DESKTOP\Start Unnamed Messenger.lnk" "$INSTDIR\Messenger\instantbird.exe"
-
-FunctionEnd
-;--------------------------------
-;Installer Functions
-
-Function .onInit
-
-  !insertmacro MUI_LANGDLL_DISPLAY
-
-FunctionEnd
-
-;--------------------------------
-;Helper Functions
-
-Function CheckIfTargetDirectoryExists
-${If} ${FileExists} "$INSTDIR\*.*"
- MessageBox MB_YESNO "The destination directory already exists. You can try to upgrade Unnamed Messenger, but if you run into any problems, use a new directory instead. Continue?" IDYES NoAbort
-   Abort
- NoAbort:
-${EndIf}
-FunctionEnd
-
-
-Function StartUnnamedMessenger
-ExecShell "open" "$INSTDIR/Start Unnamed Messenger.lnk"
-FunctionEnd
-

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits