[tor-commits] [tor-messenger-build/master] Copy cert_override.txt to the profile.default directory

sukhbir at torproject.org sukhbir at torproject.org
Tue Jul 14 04:21:36 UTC 2015


commit 096219a2ddfdd99c01fcbeb11b779d2cbc31d9ea
Author: Sukhbir Singh <sukhbir at torproject.org>
Date:   Tue Jul 14 00:21:27 2015 -0400

    Copy cert_override.txt to the profile.default directory
---
 projects/instantbird/build                 |    1 -
 projects/instantbird/cert-installer.patch  |   39 -----
 projects/instantbird/cert_override.txt     |    3 -
 projects/instantbird/config                |    2 -
 projects/tor-messenger/build               |   10 +-
 projects/tor-messenger/cert_override.txt   |    3 +
 projects/tor-messenger/config              |    3 +
 projects/tor-messenger/start-tor-messenger |  245 +++++++++++++++++-----------
 8 files changed, 168 insertions(+), 138 deletions(-)

diff --git a/projects/instantbird/build b/projects/instantbird/build
index 843a0b6..cb3a5b5 100644
--- a/projects/instantbird/build
+++ b/projects/instantbird/build
@@ -49,7 +49,6 @@ do
   patch -p1 < $patch
 done
 cat ../spi-cacert.der >> mozilla/security/nss/lib/ckfw/builtins/certdata.txt
-cp ../cert_override.txt im/app/profile
 
 cp ../xmppRegister* im/content/
 
diff --git a/projects/instantbird/cert-installer.patch b/projects/instantbird/cert-installer.patch
deleted file mode 100644
index 3ba7e32..0000000
--- a/projects/instantbird/cert-installer.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-diff --git a/im/app/profile/Makefile.in b/im/app/profile/Makefile.in
-index 4f48e97..4e02fdf 100644
---- a/im/app/profile/Makefile.in
-+++ b/im/app/profile/Makefile.in
-@@ -15,6 +15,7 @@ include $(topsrcdir)/config/rules.mk
- FILES := \
- 	mimeTypes.rdf \
- 	localstore.rdf \
-+	cert_override.txt \
- 	$(NULL)
- 
- libs:: $(FILES)
-diff --git a/im/installer/Makefile.in b/im/installer/Makefile.in
-index 0234b21..5d20e62 100644
---- a/im/installer/Makefile.in
-+++ b/im/installer/Makefile.in
-@@ -113,7 +113,9 @@ MOZ_PKG_MAC_ICON=branding/disk.icns
- MOZ_PKG_MAC_EXTRA=--symlink "/Applications:/ "
- endif
- 
--NON_OMNIJAR_FILES =
-+NON_OMNIJAR_FILES = \
-+	defaults/profile/cert_override.txt \
-+	$(NULL)
- 
- ifndef LIBXUL_SDK
- INSTALL_SDK = 1
-diff --git a/im/installer/package-manifest.in b/im/installer/package-manifest.in
-index edf01b1..78db5e4 100644
---- a/im/installer/package-manifest.in
-+++ b/im/installer/package-manifest.in
-@@ -155,6 +155,7 @@
- @RESPATH@/defaults/profile/localstore.rdf
- @RESPATH@/defaults/profile/prefs.js
- @RESPATH@/defaults/profile/mimeTypes.rdf
-+ at RESPATH@/defaults/profile/cert_override.txt
- 
- #ifdef XP_MACOSX
- @RESPATH@/components/ibDockBadge.js
diff --git a/projects/instantbird/cert_override.txt b/projects/instantbird/cert_override.txt
deleted file mode 100644
index fbe9a6f..0000000
--- a/projects/instantbird/cert_override.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-# PSM Certificate Override Settings file
-# This is a generated file!  Do not edit.
-jabber.ccc.de:5222	OID.2.16.840.1.101.3.4.2.1	63:0F:F6:2F:26:2E:2E:D3:52:4E:03:1F:39:1B:72:96:FD:09:9E:CA:10:64:76:88:74:C4:49:52:6F:94:A5:41	U	AAAAAAAAAAAAAAADAAAAew308jB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL  ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmlu  ZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZw==
diff --git a/projects/instantbird/config b/projects/instantbird/config
index c216ce4..8b80890 100644
--- a/projects/instantbird/config
+++ b/projects/instantbird/config
@@ -75,8 +75,6 @@ input_files:
   - filename: account-picture.patch
   - filename: show-traffic-tor.patch
   - filename: theme-extension-update.patch
-  - filename: cert-installer.patch
-  - filename: cert_override.txt
   - filename: ctcp-time.patch
   - filename: ctcp-ping.patch
   - filename: xmpp-inband-registration.patch
diff --git a/projects/tor-messenger/build b/projects/tor-messenger/build
index b39193b..44a0f72 100644
--- a/projects/tor-messenger/build
+++ b/projects/tor-messenger/build
@@ -20,12 +20,20 @@ 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-tor-messenger
+chmod 755 start-tor-messenger start-tor-messenger.desktop execdesktop
+
+cp start-tor-messenger.desktop bundle/
+mv start-tor-messenger.desktop bundle/Messenger/
+mv start-tor-messenger bundle/Messenger/
+mv execdesktop bundle/Messenger/
+
 mv start-tor-messenger bundle/
 mkdir -p bundle/Messenger/lib
 cp -L gcc/lib[% c('arch') == 'x86_64' ? '64' : '32' %]/libstdc++.so.6 bundle/Messenger/lib/
 [% END %]
 
+cp cert_override.txt bundle/Messenger/TorMessenger/Data/Browser/profile.default/
+
 cd bundle/Messenger/extensions
 tar xf ../../../[% c('input_files_by_name/ctypes-otr') %]
 mv ctypes-otr* 'ctypes-otr at tormessenger'
diff --git a/projects/tor-messenger/cert_override.txt b/projects/tor-messenger/cert_override.txt
new file mode 100644
index 0000000..fbe9a6f
--- /dev/null
+++ b/projects/tor-messenger/cert_override.txt
@@ -0,0 +1,3 @@
+# PSM Certificate Override Settings file
+# This is a generated file!  Do not edit.
+jabber.ccc.de:5222	OID.2.16.840.1.101.3.4.2.1	63:0F:F6:2F:26:2E:2E:D3:52:4E:03:1F:39:1B:72:96:FD:09:9E:CA:10:64:76:88:74:C4:49:52:6F:94:A5:41	U	AAAAAAAAAAAAAAADAAAAew308jB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQL  ExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmlu  ZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZw==
diff --git a/projects/tor-messenger/config b/projects/tor-messenger/config
index 49f4592..301e21b 100644
--- a/projects/tor-messenger/config
+++ b/projects/tor-messenger/config
@@ -16,8 +16,11 @@ input_files:
     name: gcc
     enable: '[% c("var/linux") %]'
   - filename: start-tor-messenger
+  - filename: start-tor-messenger.desktop
+  - filename: execdesktop
   - filename: tor-messenger.nsi
     enable: '[% c("var/windows") %]'
+  - filename: cert_override.txt
   - filename: tor-messenger.ico
     enable: '[% c("var/windows") %]'
   - project: libdmg-hfsplus
diff --git a/projects/tor-messenger/start-tor-messenger b/projects/tor-messenger/start-tor-messenger
index 51c1ee2..6f1131e 100755
--- a/projects/tor-messenger/start-tor-messenger
+++ b/projects/tor-messenger/start-tor-messenger
@@ -1,52 +1,30 @@
-#!/bin/bash
-# 
-# Based on the start-tor-browser script
+#!/usr/bin/env bash
 #
 # GNU/Linux does not really require something like RelativeLink.c
 # However, we do want to have the same look and feel with similar features.
 #
-# To run in debug mode simply pass --debug
-#
-# Copyright 2014 The Tor Project.  See LICENSE for licensing information.
+# 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
+    echo "$complain_dialog_title must be run within the X Window System." >&2
+    echo "Exiting." >&2
+    exit 1
 fi
 
-# Do not (try to) connect to the session manager 
-unset SESSION_MANAGER 
-
-# Determine whether we are running in a terminal.  If we are, we
-# should send our error messages to stderr...
-ARE_WE_RUNNING_IN_A_TERMINAL=0
-if [ -t 1 -o -t 2 ]; then
-	ARE_WE_RUNNING_IN_A_TERMINAL=1
+# 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
 
-# ...unless we're running in the same terminal as startx or xinit.  In
-# that case, the user is probably running us from a GUI file manager
-# in an X session started by typing startx at the console.
-#
-# Hopefully, the local ps command supports BSD-style options.  (The ps
-# commands usually used on Linux and FreeBSD do; do any other OSes
-# support running Linux binaries?)
-ps T 2>/dev/null |grep startx 2>/dev/null |grep -v grep 2>&1 >/dev/null
-not_running_in_same_terminal_as_startx="$?"
-ps T 2>/dev/null |grep xinit 2>/dev/null |grep -v grep 2>&1 >/dev/null
-not_running_in_same_terminal_as_xinit="$?"
-
-# not_running_in_same_terminal_as_foo has the value 1 if we are *not*
-# running in the same terminal as foo.
-if [ "$not_running_in_same_terminal_as_startx" -eq 0 -o \
-     "$not_running_in_same_terminal_as_xinit" -eq 0 ]; then
-	ARE_WE_RUNNING_IN_A_TERMINAL=0
-fi
+# Do not (try to) connect to the session manager
+unset SESSION_MANAGER
 
 # Complain about an error, by any means necessary.
 # Usage: complain message
@@ -55,8 +33,8 @@ complain () {
 	# Trim leading newlines, to avoid breaking formatting in some dialogs.
 	complain_message="`echo "$1" | sed '/./,$!d'`"
 
-	# If we're being run in a terminal, complain there.
-	if [ "$ARE_WE_RUNNING_IN_A_TERMINAL" -ne 0 ]; then
+	# If we're being run in debug/verbose mode, complain to stderr.
+	if [ "$show_output" -eq 1 ]; then
 		echo "$complain_message" >&2
 		return
 	fi
@@ -114,38 +92,86 @@ complain () {
 }
 
 if [ "`id -u`" -eq 0 ]; then
-	complain "Tor Messenger should not be run as root.  Exiting."
+	complain "The Tor Messenger Bundle should not be run as root.  Exiting."
 	exit 1
 fi
 
-debug=0
-usage_message="usage: $0 [--debug]"
-# !!! We may have more than one argument, changed -eq to -ge in if & elif clauses below
-if [ "$#" -ge 1 -a \( "x$1" = "x--debug" -o "x$1" = "x-debug" \) ]; then
-	debug=1
-	shift # pop the debug argument
-	printf "\nDebug enabled.\n\n"
-elif [ "$#" -ge 1 -a \( "x$1" = "x--help" -o "x$1" = "x-help" \) ]; then
-	echo "$usage_message"
-	exit 0
+tbb_usage () {
+    printf "\nTor Messenger Script Options\n"
+    printf "  --verbose         Display Tor and Firefox output in the terminal\n"
+    printf "  --log [file]      Record Tor and Firefox 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 the user hasn't requested 'debug mode', close whichever of stdout
-# and stderr are not ttys, to keep Firefox and the stuff loaded by/for
-# it (including the system's shared-library loader) from printing
-# messages to $HOME/.xsession-errors .  (Users wouldn't have seen
-# messages there anyway.)
-#
-# If the user has requested 'debug mode', don't muck with the FDs.
-if [ "$debug" -ne 1 ]; then
-  if [ '!' -t 1 ]; then
-    # stdout is not a tty
-    exec >/dev/null
-  fi
-  if [ '!' -t 2 ]; then
-    # stderr is not a tty
-    exec 2>/dev/null
-  fi
+if [ "$show_output" -eq 0 ]; then
+    # If the user hasn't requested 'debug mode' or --help, close stdout and stderr,
+    # to keep Firefox 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
@@ -191,6 +217,13 @@ fi
 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
@@ -198,19 +231,37 @@ if [ ! -d ".config/ibus" ]; then
   ln -nsf ~/.config/ibus/bus .config/ibus
 fi
 
-# If ${PWD} results in a zero length HOME, we can try something else...
-if [ ! "${PWD}" ]; then
-	# "hacking around some braindamage"
-	HOME="`pwd`"
-	export HOME
-	surveysays="This system has a messed up shell.\n"
-else
-	HOME="${PWD}/Messenger"
-	export HOME
+# 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 Messenger/instantbird)" : '.*ELF \([[:digit:]]*\)')
+TORARCHITECTURE=$(expr "$(file extensions/tor-launcher at torproject.org/TorBrowser/Tor/tor)" : '.*ELF \([[:digit:]]*\)')
 
 if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
    complain "Wrong architecture? 32-bit vs. 64-bit."
@@ -257,8 +308,8 @@ EOF
 # TOR_CONTROL_PASSWD='"secret"'
 #
 # Yes, the variable MUST be double-quoted, then single-quoted, exactly as
-# shown. This is used by TorButtom to authenticate to Tor's ControlPort, and
-# is necessary for using TBB with a with a system-installed Tor.
+# 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
@@ -285,25 +336,35 @@ EOF
 # 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-browser, or put
+# 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"'}
 
-# XXX: Debug mode for Firefox??
-
-# not in debug mode, run proceed normally
-printf "Launching Tor Messenger for Linux in ${HOME}...\n"
 cd "${HOME}"
-# XXX Someday we should pass whatever command-line arguments we got
-# (probably filenames or URLs) to Firefox.
-# !!! Dash above comment! Now we pass command-line arguments we got (except --debug) to Firefox.
-# !!! Use at your own risk!
-# Adding --class for fixing bug 11102.
-TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird "${@}"
-exitcode="$?"
-if [ "$exitcode" -ne 0 ]; then
-	complain "Tor Messenger exited abnormally.  Exit code: $exitcode"
-	exit "$exitcode"
+
+# We pass all additional command-line arguments we get to Firefox.
+#
+# The --class parameter was added to fix bug 11102.
+
+if [ "$show_usage" -eq 1 ]; then
+    # Display Firefox 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
-	printf '\nTor Messenger exited cleanly.\n'
+    TOR_CONTROL_PASSWD=${TOR_CONTROL_PASSWD} ./instantbird --class "Tor Messenger" \
+        -profile TorMessenger/Data/Browser/profile.default "${@}" > "$logfile" 2>&1 </dev/null
 fi
+
+exit $?



More information about the tor-commits mailing list