[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#775921: unblock: torbrowser-launcher/0.1.9-1 (was Re: Bug#775921: unblock: torbrowser-launcher/0.1.8-1 (pre-approval)



Control: retitle -1 unblock: torbrowser-launcher/0.1.9-1
Control: tags -1 - confirmed moreinfo
# only v0.1.8-1 was confirmed... though see below :)

Hi Niels,

On Dienstag, 27. Januar 2015, Niels Thykier wrote:
> > this is a pre-approval unblock request to upload a new upstream verion of
> > torbrowser-launcher to fix a serious and an important bug in jessie. The
> > new upstream release contains one other meaningful change which is the
> > last hunk in the diff below (that's to "fix opening links in TBB if one
> > originally opened TBB without clicking a link, aka just started it.)
> Ack, please go ahead and remove the moreinfo tag once it has been
> uploaded to unstable.

I guessed somewhat correctly that this one commit could make some things 
worse, but luckily this is only the case when torbrowser and firefox (not 
iceweasel!) are used together. And while this situation is impossible on 
Debian I'd still like to be a good citizen and support it, especially as the 
change is harmless for Debian. 

So I finally just uploaded 0.1.9-1 to sid, to finally get these changes into 
sid and jessie (and then wheezy-backports too)

     * featuring new signing key. (Closes: #775871)
     * handle new TBB alpha and beta versioning. (Closes: #775891)

The debdiff (to the already approved 0.1.8-1) is:

$ git diff debian/0.1.8-1..debian/0.1.9-1|diffstat
 BUILD.md                          |   26 ++++++++++++++++----------
 CHANGELOG.md                      |    4 ++++
 README.md                         |   14 +++++++++++---
 debian/changelog                  |    7 +++++++
 share/torbrowser-launcher/version |    2 +-
 torbrowser_launcher/common.py     |    3 ++-
 torbrowser_launcher/launcher.py   |    5 ++++-
 torbrowser_launcher/settings.py   |   10 ++++++++++
 8 files changed, 55 insertions(+), 16 deletions(-)

This diff is attached, as well as the relevant 70d0c57d commit from 0.1.9, 
which adds an option (enabled by default) to disable this feature if one is 
using firefox and torbrowser. So essentially this change is a no-op for 
Debian.

The upstream discussion about this can be found at 
https://github.com/micahflee/torbrowser-launcher/issues/157

Also, 0.1.9-1~exp1 has been in experimental since 2015-01-27 and reportedly 
been used by some users without any new issues reported whatsoever.

Finally, for your convinience I've also attached the diff between what's in 
testing right now, pipped through 'filterdiff -x "*.asc"'.

torbrowser 0.1.9-1 has been accepted into sid.


Thanks for your work on jessie!

cheers,
	Holger
diff --git a/BUILD.md b/BUILD.md
index 434b2ca..93163a5 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -2,26 +2,32 @@
 
 First, clone the repository:
 
-    git clone https://github.com/micahflee/torbrowser-launcher.git
-    cd torbrowser-launcher
+```sh
+git clone https://github.com/micahflee/torbrowser-launcher.git
+cd torbrowser-launcher
+```
 
 Then install dependencies, build a package, and install:
 
 ### Debian, Ubuntu, Linux Mint, etc.
 
-    sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
-    ./build_deb.sh
-    sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```sh
+sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
+./build_deb.sh
+sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```
 
-Optionally you can install python-pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `python-pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Red Hat, Fedora, CentOS, etc.
 
-    sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
-    ./build_rpm.sh
-    sudo yum install dist/torbrowser-launcher-*.rpm
+```sh
+sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
+./build_rpm.sh
+sudo yum install dist/torbrowser-launcher-*.rpm
+```
 
-Optionally you can install pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Run without installing
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e340b58..cc211b0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Tor Browser Launcher Changelog
 
+## 0.1.9
+
+* Added option to disable accepting links, to workaround Firefox/Tor Browser issue
+
 ## 0.1.8
 
 * Added new Tor Browser signing key
diff --git a/README.md b/README.md
index 5cf3548..059044f 100644
--- a/README.md
+++ b/README.md
@@ -15,11 +15,19 @@ You might want to check out the [security design doc](/security_design.md).
 
 ![Tor Browser Launcher screenshot](/screenshot.png)
 
+## Using Tor Browser as your default browser, and Firefox
+
+Tor Browser Launcher allows you to set Tor Browser as your default web browser. Unfortunately, there's a gnarly issue that prevents this from working if Firefox is open in the background. If Tor Browser is set as your default browser and Firefox is open in the background, links will get opened in Firefox. Likewise, if Firefox is your default browser and Tor Browser is open in the background, links will get opened in Tor Browser. See more information [here](https://github.com/micahflee/torbrowser-launcher/issues/157).
+
+You can only use Tor Browser as your default browser if you don't use Firefox at the same time. Other browser (such as Iceweasel, Chromium, or Chrome) will work fine. You must check "Allow opening links with Tor Browser" in the settings to enable it.
+
 ## Installing in Ubuntu 14.04 and earlier
 
 I've created a PPA where I'm maintaining torbrowser-launcher binaries. You can install in an Ubuntu-based distribution like this:
 
-    sudo add-apt-repository ppa:micahflee/ppa
-    sudo apt-get update
-    sudo apt-get install torbrowser-launcher
+```sh
+sudo add-apt-repository ppa:micahflee/ppa
+sudo apt-get update
+sudo apt-get install torbrowser-launcher
+```
 
diff --git a/debian/changelog b/debian/changelog
index 23d5d87..177f26a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+torbrowser-launcher (0.1.9-1) unstable; urgency=medium
+
+  * New upstream version, which adds an option to disable accepting links, to
+    workaround an issue affecting users running both Firefox and Tor Browser.
+
+ -- Holger Levsen <holger@debian.org>  Wed, 04 Feb 2015 22:55:39 +0100
+
 torbrowser-launcher (0.1.8-1) unstable; urgency=medium
 
   * New upstream version:
diff --git a/share/torbrowser-launcher/version b/share/torbrowser-launcher/version
index 699c6c6..1a03094 100644
--- a/share/torbrowser-launcher/version
+++ b/share/torbrowser-launcher/version
@@ -1 +1 @@
-0.1.8
+0.1.9
diff --git a/torbrowser_launcher/common.py b/torbrowser_launcher/common.py
index 139e536..505a4b3 100644
--- a/torbrowser_launcher/common.py
+++ b/torbrowser_launcher/common.py
@@ -198,7 +198,8 @@ class Common:
             'check_for_updates': False,
             'modem_sound': False,
             'last_update_check_timestamp': 0,
-            'mirror': self.default_mirror
+            'mirror': self.default_mirror,
+            'accept_links': False
         }
 
         if os.path.isfile(self.paths['settings_file']):
diff --git a/torbrowser_launcher/launcher.py b/torbrowser_launcher/launcher.py
index 8fa6c8a..00bc5a4 100644
--- a/torbrowser_launcher/launcher.py
+++ b/torbrowser_launcher/launcher.py
@@ -634,7 +634,10 @@ class Launcher:
                 gtk.main_iteration_do(True)
 
         # run Tor Browser
-        subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        if self.common.settings['accept_links']:
+            subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        else:
+            subprocess.call([self.common.paths['tbb']['start']])
 
         if run_next_task:
             self.run_task()
diff --git a/torbrowser_launcher/settings.py b/torbrowser_launcher/settings.py
index 0aba63b..a29c41a 100644
--- a/torbrowser_launcher/settings.py
+++ b/torbrowser_launcher/settings.py
@@ -95,6 +95,15 @@ class Settings:
             self.update_checkbox.set_active(False)
         self.update_checkbox.show()
 
+        # accept links
+        self.accept_links = gtk.CheckButton(_("Allow opening links with Tor Browser\n(this doesn't work if you use Firefox)"))
+        self.settings_box.pack_start(self.accept_links, True, True, 0)
+        if self.common.settings['accept_links']:
+            self.accept_links.set_active(True)
+        else:
+            self.accept_links.set_active(False)
+        self.accept_links.show()
+
         # modem sound
         self.modem_checkbox = gtk.CheckButton(_("Play modem sound, because Tor is slow :]"))
         self.settings_box.pack_start(self.modem_checkbox, True, True, 0)
@@ -213,6 +222,7 @@ class Settings:
         # checkbox options
         self.common.settings['update_over_tor'] = self.tor_update_checkbox.get_active()
         self.common.settings['check_for_updates'] = self.update_checkbox.get_active()
+        self.common.settings['accept_links'] = self.accept_links.get_active()
         self.common.settings['modem_sound'] = self.modem_checkbox.get_active()
 
         # figure out the selected mirror
From 70d0c57d59fa3a93a95b4395bebca02dac0aa2fc Mon Sep 17 00:00:00 2001
From: Micah Lee <micah@micahflee.com>
Date: Wed, 21 Jan 2015 11:54:03 -0800
Subject: [PATCH] add option to disable accepting links (partial fix for #157)

---
 torbrowser_launcher/common.py   |  3 ++-
 torbrowser_launcher/launcher.py |  5 ++++-
 torbrowser_launcher/settings.py | 10 ++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/torbrowser_launcher/common.py b/torbrowser_launcher/common.py
index 139e536..505a4b3 100644
--- a/torbrowser_launcher/common.py
+++ b/torbrowser_launcher/common.py
@@ -198,7 +198,8 @@ class Common:
             'check_for_updates': False,
             'modem_sound': False,
             'last_update_check_timestamp': 0,
-            'mirror': self.default_mirror
+            'mirror': self.default_mirror,
+            'accept_links': False
         }
 
         if os.path.isfile(self.paths['settings_file']):
diff --git a/torbrowser_launcher/launcher.py b/torbrowser_launcher/launcher.py
index 8fa6c8a..00bc5a4 100644
--- a/torbrowser_launcher/launcher.py
+++ b/torbrowser_launcher/launcher.py
@@ -634,7 +634,10 @@ class Launcher:
                 gtk.main_iteration_do(True)
 
         # run Tor Browser
-        subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        if self.common.settings['accept_links']:
+            subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        else:
+            subprocess.call([self.common.paths['tbb']['start']])
 
         if run_next_task:
             self.run_task()
diff --git a/torbrowser_launcher/settings.py b/torbrowser_launcher/settings.py
index 0aba63b..a29c41a 100644
--- a/torbrowser_launcher/settings.py
+++ b/torbrowser_launcher/settings.py
@@ -95,6 +95,15 @@ class Settings:
             self.update_checkbox.set_active(False)
         self.update_checkbox.show()
 
+        # accept links
+        self.accept_links = gtk.CheckButton(_("Allow opening links with Tor Browser\n(this doesn't work if you use Firefox)"))
+        self.settings_box.pack_start(self.accept_links, True, True, 0)
+        if self.common.settings['accept_links']:
+            self.accept_links.set_active(True)
+        else:
+            self.accept_links.set_active(False)
+        self.accept_links.show()
+
         # modem sound
         self.modem_checkbox = gtk.CheckButton(_("Play modem sound, because Tor is slow :]"))
         self.settings_box.pack_start(self.modem_checkbox, True, True, 0)
@@ -213,6 +222,7 @@ class Settings:
         # checkbox options
         self.common.settings['update_over_tor'] = self.tor_update_checkbox.get_active()
         self.common.settings['check_for_updates'] = self.update_checkbox.get_active()
+        self.common.settings['accept_links'] = self.accept_links.get_active()
         self.common.settings['modem_sound'] = self.modem_checkbox.get_active()
 
         # figure out the selected mirror
-- 
1.9.1

diff --git a/BUILD.md b/BUILD.md
index 434b2ca..93163a5 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -2,26 +2,32 @@
 
 First, clone the repository:
 
-    git clone https://github.com/micahflee/torbrowser-launcher.git
-    cd torbrowser-launcher
+```sh
+git clone https://github.com/micahflee/torbrowser-launcher.git
+cd torbrowser-launcher
+```
 
 Then install dependencies, build a package, and install:
 
 ### Debian, Ubuntu, Linux Mint, etc.
 
-    sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
-    ./build_deb.sh
-    sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```sh
+sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
+./build_deb.sh
+sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```
 
-Optionally you can install python-pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `python-pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Red Hat, Fedora, CentOS, etc.
 
-    sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
-    ./build_rpm.sh
-    sudo yum install dist/torbrowser-launcher-*.rpm
+```sh
+sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
+./build_rpm.sh
+sudo yum install dist/torbrowser-launcher-*.rpm
+```
 
-Optionally you can install pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Run without installing
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d270bb0..cc211b0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
 # Tor Browser Launcher Changelog
 
+## 0.1.9
+
+* Added option to disable accepting links, to workaround Firefox/Tor Browser issue
+
+## 0.1.8
+
+* Added new Tor Browser signing key
+* Fixed removing alpha/beta code due to change in RecommendedTBBVersions syntax
+* Fixed opening links in TBB if you originally opened TBB without clicking a link
+
+
 ## 0.1.7
 
 * You can now pass URLs into TBL, and set it as your default browser
diff --git a/MANIFEST.in b/MANIFEST.in
deleted file mode 100644
index a80894c..0000000
--- a/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-include locale/*
-include img/*
-include keys/*
-include torbrowser.desktop
-include verify.sh
-include mirrors.txt
diff --git a/README.md b/README.md
index 5cf3548..059044f 100644
--- a/README.md
+++ b/README.md
@@ -15,11 +15,19 @@ You might want to check out the [security design doc](/security_design.md).
 
 ![Tor Browser Launcher screenshot](/screenshot.png)
 
+## Using Tor Browser as your default browser, and Firefox
+
+Tor Browser Launcher allows you to set Tor Browser as your default web browser. Unfortunately, there's a gnarly issue that prevents this from working if Firefox is open in the background. If Tor Browser is set as your default browser and Firefox is open in the background, links will get opened in Firefox. Likewise, if Firefox is your default browser and Tor Browser is open in the background, links will get opened in Tor Browser. See more information [here](https://github.com/micahflee/torbrowser-launcher/issues/157).
+
+You can only use Tor Browser as your default browser if you don't use Firefox at the same time. Other browser (such as Iceweasel, Chromium, or Chrome) will work fine. You must check "Allow opening links with Tor Browser" in the settings to enable it.
+
 ## Installing in Ubuntu 14.04 and earlier
 
 I've created a PPA where I'm maintaining torbrowser-launcher binaries. You can install in an Ubuntu-based distribution like this:
 
-    sudo add-apt-repository ppa:micahflee/ppa
-    sudo apt-get update
-    sudo apt-get install torbrowser-launcher
+```sh
+sudo add-apt-repository ppa:micahflee/ppa
+sudo apt-get update
+sudo apt-get install torbrowser-launcher
+```
 
diff --git a/debian/changelog b/debian/changelog
index ca68821..177f26a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+torbrowser-launcher (0.1.9-1) unstable; urgency=medium
+
+  * New upstream version, which adds an option to disable accepting links, to
+    workaround an issue affecting users running both Firefox and Tor Browser.
+
+ -- Holger Levsen <holger@debian.org>  Wed, 04 Feb 2015 22:55:39 +0100
+
+torbrowser-launcher (0.1.8-1) unstable; urgency=medium
+
+  * New upstream version:
+    * featuring new signing key. (Closes: #775871)
+    * handle new TBB alpha and beta versioning. (Closes: #775891)
+
+ -- Ulrike Uhlig <u@451f.org>  Tue, 20 Jan 2015 23:30:27 +0100
+
 torbrowser-launcher (0.1.7-1) unstable; urgency=medium
 
   [ Ulrike Uhlig ]
diff --git a/share/torbrowser-launcher/tor-browser-developers.asc b/share/torbrowser-launcher/tor-browser-developers.asc
new file mode 100644
index 0000000..e121615
--- /dev/null
+++ b/share/torbrowser-launcher/tor-browser-developers.asc
@@ -0,0 +1,141 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=BpzM
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/share/torbrowser-launcher/version b/share/torbrowser-launcher/version
index 1180819..1a03094 100644
--- a/share/torbrowser-launcher/version
+++ b/share/torbrowser-launcher/version
@@ -1 +1 @@
-0.1.7
+0.1.9
diff --git a/torbrowser_launcher/common.py b/torbrowser_launcher/common.py
index 8ea7545..505a4b3 100644
--- a/torbrowser_launcher/common.py
+++ b/torbrowser_launcher/common.py
@@ -134,7 +134,7 @@ class Common:
                 'tbl_bin': sys.argv[0],
                 'icon_file': os.path.join(os.path.dirname(SHARE), 'pixmaps/torbrowser80.xpm'),
                 'torproject_pem': os.path.join(SHARE, 'torproject.pem'),
-                'erinn_key': os.path.join(SHARE, 'erinn.asc'),
+                'signing_keys': [os.path.join(SHARE, 'erinn.asc'), os.path.join(SHARE, 'tor-browser-developers.asc')],
                 'mirrors_txt': [os.path.join(SHARE, 'mirrors.txt'),
                                 tbb_config+'/mirrors.txt'],
                 'modem_sound': os.path.join(SHARE, 'modem.ogg'),
@@ -175,16 +175,14 @@ class Common:
     # import gpg keys
     def import_keys(self):
         print _('Importing keys')
-        subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['erinn_key']]).wait()
+        for key in self.paths['signing_keys']:
+            subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', key]).wait()
 
     # load mirrors
     def load_mirrors(self):
         self.mirrors = []
         for srcfile in self.paths['mirrors_txt']:
-            if os.path.exists(srcfile):
-                print "Successfully loaded mirrors from %s" % srcfile
-            elif not os.path.exists(srcfile):
-                print "Warning: can't load mirrors from %s" % srcfile
+            if not os.path.exists(srcfile):
                 continue
             for mirror in open(srcfile, 'r').readlines():
                 if mirror.strip() not in self.mirrors:
@@ -200,7 +198,8 @@ class Common:
             'check_for_updates': False,
             'modem_sound': False,
             'last_update_check_timestamp': 0,
-            'mirror': self.default_mirror
+            'mirror': self.default_mirror,
+            'accept_links': False
         }
 
         if os.path.isfile(self.paths['settings_file']):
diff --git a/torbrowser_launcher/launcher.py b/torbrowser_launcher/launcher.py
index 284f224..00bc5a4 100644
--- a/torbrowser_launcher/launcher.py
+++ b/torbrowser_launcher/launcher.py
@@ -26,7 +26,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 """
 
-import os, subprocess, time, json, tarfile, hashlib, lzma, threading
+import os, subprocess, time, json, tarfile, hashlib, lzma, threading, re
 from twisted.internet import reactor
 from twisted.web.client import Agent, RedirectAgent, ResponseDone, ResponseFailed
 from twisted.web.http_headers import Headers
@@ -513,7 +513,7 @@ class Launcher:
                 stable = []
                 # remove alphas/betas
                 for version in versions:
-                    if '-alpha-' not in version and '-beta-' not in version:
+                    if not re.search(r'a\d-Linux', version) and not re.search(r'b\d-Linux', version):
                         stable.append(version)
                 if len(stable):
                     latest = stable.pop()
@@ -634,10 +634,10 @@ class Launcher:
                 gtk.main_iteration_do(True)
 
         # run Tor Browser
-        if len(self.url_list) == 0:
-            subprocess.call([self.common.paths['tbb']['start']])
-        else:
+        if self.common.settings['accept_links']:
             subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        else:
+            subprocess.call([self.common.paths['tbb']['start']])
 
         if run_next_task:
             self.run_task()
diff --git a/torbrowser_launcher/settings.py b/torbrowser_launcher/settings.py
index 0aba63b..a29c41a 100644
--- a/torbrowser_launcher/settings.py
+++ b/torbrowser_launcher/settings.py
@@ -95,6 +95,15 @@ class Settings:
             self.update_checkbox.set_active(False)
         self.update_checkbox.show()
 
+        # accept links
+        self.accept_links = gtk.CheckButton(_("Allow opening links with Tor Browser\n(this doesn't work if you use Firefox)"))
+        self.settings_box.pack_start(self.accept_links, True, True, 0)
+        if self.common.settings['accept_links']:
+            self.accept_links.set_active(True)
+        else:
+            self.accept_links.set_active(False)
+        self.accept_links.show()
+
         # modem sound
         self.modem_checkbox = gtk.CheckButton(_("Play modem sound, because Tor is slow :]"))
         self.settings_box.pack_start(self.modem_checkbox, True, True, 0)
@@ -213,6 +222,7 @@ class Settings:
         # checkbox options
         self.common.settings['update_over_tor'] = self.tor_update_checkbox.get_active()
         self.common.settings['check_for_updates'] = self.update_checkbox.get_active()
+        self.common.settings['accept_links'] = self.accept_links.get_active()
         self.common.settings['modem_sound'] = self.modem_checkbox.get_active()
 
         # figure out the selected mirror
diff --git a/BUILD.md b/BUILD.md
index 434b2ca..93163a5 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -2,26 +2,32 @@
 
 First, clone the repository:
 
-    git clone https://github.com/micahflee/torbrowser-launcher.git
-    cd torbrowser-launcher
+```sh
+git clone https://github.com/micahflee/torbrowser-launcher.git
+cd torbrowser-launcher
+```
 
 Then install dependencies, build a package, and install:
 
 ### Debian, Ubuntu, Linux Mint, etc.
 
-    sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
-    ./build_deb.sh
-    sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```sh
+sudo apt-get install build-essential python-all python-stdeb python-gtk2 python-psutil python-twisted python-lzma python-txsocksx wmctrl gnupg fakeroot xz-utils tor
+./build_deb.sh
+sudo dpkg -i deb_dist/torbrowser-launcher_*.deb
+```
 
-Optionally you can install python-pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `python-pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Red Hat, Fedora, CentOS, etc.
 
-    sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
-    ./build_rpm.sh
-    sudo yum install dist/torbrowser-launcher-*.rpm
+```sh
+sudo yum install python-psutil python-twisted wmctrl gnupg fakeroot rpm-build
+./build_rpm.sh
+sudo yum install dist/torbrowser-launcher-*.rpm
+```
 
-Optionally you can install pygame if you want to play a modem sound while Tor Browser is launching.
+Optionally you can install `pygame` if you want to play a modem sound while Tor Browser is launching.
 
 ### Run without installing
 
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d270bb0..cc211b0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,16 @@
 # Tor Browser Launcher Changelog
 
+## 0.1.9
+
+* Added option to disable accepting links, to workaround Firefox/Tor Browser issue
+
+## 0.1.8
+
+* Added new Tor Browser signing key
+* Fixed removing alpha/beta code due to change in RecommendedTBBVersions syntax
+* Fixed opening links in TBB if you originally opened TBB without clicking a link
+
+
 ## 0.1.7
 
 * You can now pass URLs into TBL, and set it as your default browser
diff --git a/MANIFEST.in b/MANIFEST.in
deleted file mode 100644
index a80894c..0000000
--- a/MANIFEST.in
+++ /dev/null
@@ -1,6 +0,0 @@
-include locale/*
-include img/*
-include keys/*
-include torbrowser.desktop
-include verify.sh
-include mirrors.txt
diff --git a/README.md b/README.md
index 5cf3548..059044f 100644
--- a/README.md
+++ b/README.md
@@ -15,11 +15,19 @@ You might want to check out the [security design doc](/security_design.md).
 
 ![Tor Browser Launcher screenshot](/screenshot.png)
 
+## Using Tor Browser as your default browser, and Firefox
+
+Tor Browser Launcher allows you to set Tor Browser as your default web browser. Unfortunately, there's a gnarly issue that prevents this from working if Firefox is open in the background. If Tor Browser is set as your default browser and Firefox is open in the background, links will get opened in Firefox. Likewise, if Firefox is your default browser and Tor Browser is open in the background, links will get opened in Tor Browser. See more information [here](https://github.com/micahflee/torbrowser-launcher/issues/157).
+
+You can only use Tor Browser as your default browser if you don't use Firefox at the same time. Other browser (such as Iceweasel, Chromium, or Chrome) will work fine. You must check "Allow opening links with Tor Browser" in the settings to enable it.
+
 ## Installing in Ubuntu 14.04 and earlier
 
 I've created a PPA where I'm maintaining torbrowser-launcher binaries. You can install in an Ubuntu-based distribution like this:
 
-    sudo add-apt-repository ppa:micahflee/ppa
-    sudo apt-get update
-    sudo apt-get install torbrowser-launcher
+```sh
+sudo add-apt-repository ppa:micahflee/ppa
+sudo apt-get update
+sudo apt-get install torbrowser-launcher
+```
 
diff --git a/debian/changelog b/debian/changelog
index ca68821..177f26a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+torbrowser-launcher (0.1.9-1) unstable; urgency=medium
+
+  * New upstream version, which adds an option to disable accepting links, to
+    workaround an issue affecting users running both Firefox and Tor Browser.
+
+ -- Holger Levsen <holger@debian.org>  Wed, 04 Feb 2015 22:55:39 +0100
+
+torbrowser-launcher (0.1.8-1) unstable; urgency=medium
+
+  * New upstream version:
+    * featuring new signing key. (Closes: #775871)
+    * handle new TBB alpha and beta versioning. (Closes: #775891)
+
+ -- Ulrike Uhlig <u@451f.org>  Tue, 20 Jan 2015 23:30:27 +0100
+
 torbrowser-launcher (0.1.7-1) unstable; urgency=medium
 
   [ Ulrike Uhlig ]
diff --git a/share/torbrowser-launcher/tor-browser-developers.asc b/share/torbrowser-launcher/tor-browser-developers.asc
new file mode 100644
index 0000000..e121615
diff --git a/share/torbrowser-launcher/version b/share/torbrowser-launcher/version
index 1180819..1a03094 100644
--- a/share/torbrowser-launcher/version
+++ b/share/torbrowser-launcher/version
@@ -1 +1 @@
-0.1.7
+0.1.9
diff --git a/torbrowser_launcher/common.py b/torbrowser_launcher/common.py
index 8ea7545..505a4b3 100644
--- a/torbrowser_launcher/common.py
+++ b/torbrowser_launcher/common.py
@@ -134,7 +134,7 @@ class Common:
                 'tbl_bin': sys.argv[0],
                 'icon_file': os.path.join(os.path.dirname(SHARE), 'pixmaps/torbrowser80.xpm'),
                 'torproject_pem': os.path.join(SHARE, 'torproject.pem'),
-                'erinn_key': os.path.join(SHARE, 'erinn.asc'),
+                'signing_keys': [os.path.join(SHARE, 'erinn.asc'), os.path.join(SHARE, 'tor-browser-developers.asc')],
                 'mirrors_txt': [os.path.join(SHARE, 'mirrors.txt'),
                                 tbb_config+'/mirrors.txt'],
                 'modem_sound': os.path.join(SHARE, 'modem.ogg'),
@@ -175,16 +175,14 @@ class Common:
     # import gpg keys
     def import_keys(self):
         print _('Importing keys')
-        subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['erinn_key']]).wait()
+        for key in self.paths['signing_keys']:
+            subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', key]).wait()
 
     # load mirrors
     def load_mirrors(self):
         self.mirrors = []
         for srcfile in self.paths['mirrors_txt']:
-            if os.path.exists(srcfile):
-                print "Successfully loaded mirrors from %s" % srcfile
-            elif not os.path.exists(srcfile):
-                print "Warning: can't load mirrors from %s" % srcfile
+            if not os.path.exists(srcfile):
                 continue
             for mirror in open(srcfile, 'r').readlines():
                 if mirror.strip() not in self.mirrors:
@@ -200,7 +198,8 @@ class Common:
             'check_for_updates': False,
             'modem_sound': False,
             'last_update_check_timestamp': 0,
-            'mirror': self.default_mirror
+            'mirror': self.default_mirror,
+            'accept_links': False
         }
 
         if os.path.isfile(self.paths['settings_file']):
diff --git a/torbrowser_launcher/launcher.py b/torbrowser_launcher/launcher.py
index 284f224..00bc5a4 100644
--- a/torbrowser_launcher/launcher.py
+++ b/torbrowser_launcher/launcher.py
@@ -26,7 +26,7 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 """
 
-import os, subprocess, time, json, tarfile, hashlib, lzma, threading
+import os, subprocess, time, json, tarfile, hashlib, lzma, threading, re
 from twisted.internet import reactor
 from twisted.web.client import Agent, RedirectAgent, ResponseDone, ResponseFailed
 from twisted.web.http_headers import Headers
@@ -513,7 +513,7 @@ class Launcher:
                 stable = []
                 # remove alphas/betas
                 for version in versions:
-                    if '-alpha-' not in version and '-beta-' not in version:
+                    if not re.search(r'a\d-Linux', version) and not re.search(r'b\d-Linux', version):
                         stable.append(version)
                 if len(stable):
                     latest = stable.pop()
@@ -634,10 +634,10 @@ class Launcher:
                 gtk.main_iteration_do(True)
 
         # run Tor Browser
-        if len(self.url_list) == 0:
-            subprocess.call([self.common.paths['tbb']['start']])
-        else:
+        if self.common.settings['accept_links']:
             subprocess.call([self.common.paths['tbb']['start'], '-allow-remote'] + self.url_list)
+        else:
+            subprocess.call([self.common.paths['tbb']['start']])
 
         if run_next_task:
             self.run_task()
diff --git a/torbrowser_launcher/settings.py b/torbrowser_launcher/settings.py
index 0aba63b..a29c41a 100644
--- a/torbrowser_launcher/settings.py
+++ b/torbrowser_launcher/settings.py
@@ -95,6 +95,15 @@ class Settings:
             self.update_checkbox.set_active(False)
         self.update_checkbox.show()
 
+        # accept links
+        self.accept_links = gtk.CheckButton(_("Allow opening links with Tor Browser\n(this doesn't work if you use Firefox)"))
+        self.settings_box.pack_start(self.accept_links, True, True, 0)
+        if self.common.settings['accept_links']:
+            self.accept_links.set_active(True)
+        else:
+            self.accept_links.set_active(False)
+        self.accept_links.show()
+
         # modem sound
         self.modem_checkbox = gtk.CheckButton(_("Play modem sound, because Tor is slow :]"))
         self.settings_box.pack_start(self.modem_checkbox, True, True, 0)
@@ -213,6 +222,7 @@ class Settings:
         # checkbox options
         self.common.settings['update_over_tor'] = self.tor_update_checkbox.get_active()
         self.common.settings['check_for_updates'] = self.update_checkbox.get_active()
+        self.common.settings['accept_links'] = self.accept_links.get_active()
         self.common.settings['modem_sound'] = self.modem_checkbox.get_active()
 
         # figure out the selected mirror

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: