[Pkg-privacy-commits] [torbrowser-launcher] 153/476: got 3.0 alphas working! #49
Ximin Luo
infinity0 at moszumanska.debian.org
Sat Aug 22 13:21:32 UTC 2015
This is an automated email from the git hooks/post-receive script.
infinity0 pushed a commit to branch debian
in repository torbrowser-launcher.
commit e866ffa3ad722aca8b69c3e0152b83b1b26c9543
Author: Micah Lee <micahflee at riseup.net>
Date: Fri Aug 9 16:04:08 2013 -0700
got 3.0 alphas working! #49
---
README.md | 4 +-
setup.py | 2 +-
stdeb.cfg | 2 +-
torbrowser-launcher | 176 +++++++++++++++++++++++++++++-----------------------
4 files changed, 103 insertions(+), 81 deletions(-)
diff --git a/README.md b/README.md
index 90d61fb..3664f30 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ If you're using a Debian-based distro like Debian, Ubuntu, or Linux Mint, the
following instructions will install dependencies, clone this repo, build a .deb, and
install it with dpkg.
- sudo apt-get install python-stdeb python-gtk2 python-psutil python-twisted wmctrl gnupg fakeroot
+ sudo apt-get install python-stdeb python-gtk2 python-psutil python-twisted python-lzma wmctrl gnupg fakeroot
git clone https://github.com/micahflee/torbrowser-launcher.git
cd torbrowser-launcher
./build_and_install.sh
@@ -37,7 +37,7 @@ install it like this:
Also install the ```torbrowser-launcher``` dependencies:
- apt-get install python-gtk2 python-psutil python-twisted wmctrl gnupg fakeroot
+ apt-get install python-gtk2 python-psutil python-twisted python-lzma wmctrl gnupg fakeroot
Debian packages
---------------
diff --git a/setup.py b/setup.py
index 936bc72..076adee 100644
--- a/setup.py
+++ b/setup.py
@@ -56,7 +56,7 @@ Tor Browser Launcher will get updated each time a new version of TBB is released
scripts=['torbrowser-launcher'],
data_files=[('/usr/share/applications', ['torbrowser.desktop', 'torbrowser-settings.desktop']),
('/usr/share/pixmaps', ['img/torbrowser32.xpm', 'img/torbrowser80.xpm']),
- ('/usr/share/torbrowser-launcher', ['keys/erinn.asc', 'keys/sebastian.asc', 'keys/alexandre.asc', 'torproject.pem', 'mirrors.txt']),
+ ('/usr/share/torbrowser-launcher', ['keys/erinn.asc', 'keys/sebastian.asc', 'keys/alexandre.asc', 'keys/mike.asc', 'torproject.pem', 'mirrors.txt']),
('/usr/share/torbrowser-launcher/locale/en', ['locale/en/messages.pot']),
# unpackaged third party libraries
diff --git a/stdeb.cfg b/stdeb.cfg
index 24b9404..541d932 100644
--- a/stdeb.cfg
+++ b/stdeb.cfg
@@ -1,3 +1,3 @@
[DEFAULT]
Package: torbrowser-launcher
-Depends: python-gtk2, python-psutil, python-twisted, gnupg, wmctrl
+Depends: python-gtk2, python-psutil, python-twisted, python-lzma, gnupg, wmctrl
diff --git a/torbrowser-launcher b/torbrowser-launcher
index d093a18..87bdafc 100755
--- a/torbrowser-launcher
+++ b/torbrowser-launcher
@@ -41,7 +41,7 @@ import pygtk
pygtk.require('2.0')
import gtk
-import os, subprocess, locale, urllib2, gobject, time, pickle, json, tarfile, psutil, hashlib
+import os, subprocess, locale, urllib2, gobject, time, pickle, json, tarfile, psutil, hashlib, lzma
from twisted.web.client import Agent, RedirectAgent, ResponseDone, ResponseFailed
from twisted.web.http_headers import Headers
@@ -145,13 +145,15 @@ class TBLCommon:
if tbb_version:
if tbb_version >= '3.':
# tarball filename
- dirname = tbb_version.replace('-alpha-', 'a')
- dirname = tbb_version.replace('-beta-', 'b')
+ dirname = tbb_version.replace('-alpha-', 'a').replace('-beta-', 'b')
if self.architecture == 'x86_64':
arch = 'linux64'
else:
arch = 'linux32'
- tarball_filename = dirname+'/tor-browser-'+arch+'-'+tbb_version+'_'+self.language+'.tar.xz'
+ tarball_filename = 'tor-browser-'+arch+'-'+tbb_version+'_'+self.language+'.tar.xz'
+
+ # tarball
+ self.paths['tarball_url'] = 'https://archive.torproject.org/tor-package-archive/torbrowser/'+dirname+'/'+tarball_filename
# sig
self.paths['sha256_file'] = tbb_data+'/download/sha256sums.txt'
@@ -162,13 +164,15 @@ class TBLCommon:
# tarball filename
tarball_filename = 'tor-browser-gnu-linux-'+self.architecture+'-'+tbb_version+'-dev-'+self.language+'.tar.gz'
+ # tarball
+ self.paths['tarball_url'] = '{0}torbrowser/linux/'+tarball_filename # {0} will be replaced with the mirror
+
# sig
self.paths['tarball_sig_file'] = tbb_data+'/download/'+tarball_filename+'.asc'
self.paths['tarball_sig_url'] = '{0}torbrowser/linux/'+tarball_filename+'.asc'
self.paths['tarball_sig_filename'] = tarball_filename+'.asc'
self.paths['tarball_file'] = tbb_data+'/download/'+tarball_filename
- self.paths['tarball_url'] = '{0}torbrowser/linux/'+tarball_filename # {0} will be replaced with the mirror
self.paths['tarball_filename'] = tarball_filename
else:
@@ -224,15 +228,15 @@ class TBLCommon:
if not os.path.exists(self.paths['gnupg_homedir']):
print _('Creating GnuPG homedir'), self.paths['gnupg_homedir']
if self.mkdir(self.paths['gnupg_homedir']):
- self.import_keys()
+ self.import_keys()
- # 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()
- subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['sebastian_key']]).wait()
- subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['alexandre_key']]).wait()
- subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['mike_key']]).wait()
+ # 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()
+ subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['sebastian_key']]).wait()
+ subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['alexandre_key']]).wait()
+ subprocess.Popen(['/usr/bin/gpg', '--homedir', self.paths['gnupg_homedir'], '--import', self.paths['mike_key']]).wait()
# load mirrors
def load_mirrors(self):
@@ -301,7 +305,7 @@ class TBLCommon:
if settings['tbl_version'] == '0.0.1':
self.settings = default_settings
self.settings['installed_version']['alpha'] = settings['installed_version']
- settings['tbl_version'] = '0.0.2'
+ self.settings['tbl_version'] = '0.0.2'
self.save_settings()
# move tbb alpha
@@ -311,10 +315,9 @@ class TBLCommon:
pass
if os.path.exists(self.paths['data_dir']+'/tbb/i686'):
pass
-
- if settings['tbl_version'] == '0.0.2':
- # 0.0.2 added Mike Perry's key
- self.import_keys()
+
+ # 0.0.2 added Mike Perry's key
+ self.import_keys()
else:
self.settings = default_settings
@@ -624,52 +627,56 @@ class TBLLauncher:
# download or run TBB
def start_launcher(self):
# is TBB already installed?
- latest_version = self.common.settings['latest_version'][self.common.settings['preferred']]
- installed_version = self.common.settings['installed_version'][self.common.settings['preferred']]
+ latest_version = self.common.settings['latest_version'][self.common.settings['preferred']]
+ installed_version = self.common.settings['installed_version'][self.common.settings['preferred']]
+
start = self.common.paths['tbb'][self.common.settings['preferred']]['start']
if os.path.isfile(start) and os.access(start, os.X_OK):
if installed_version == latest_version:
+ print _('Latest version of TBB is installed, launching')
# current version of tbb is installed, launch it
self.run(False)
self.launch_gui = False
- elif installed_version < latest_version:
+ elif installed_version < latest_version:
+ print _('TBB is out of date, attempting to upgrade to {0}'.format(latest_version))
# there is a tbb upgrade available
- if latest_version >= '3.':
- self.set_gui('task', _("Your Tor Browser is out of date."),
- ['download_sha256',
- 'download_sha256_sig',
- 'download_tarball',
- 'verify',
- 'extract',
- 'run'])
- else:
- self.set_gui('task', _("Your Tor Browser is out of date."),
- ['download_tarball_sig',
- 'download_tarball',
- 'verify',
- 'extract',
- 'run'])
+ if latest_version >= '3.':
+ self.set_gui('task', _("Your Tor Browser is out of date."),
+ ['download_sha256',
+ 'download_sha256_sig',
+ 'download_tarball',
+ 'verify',
+ 'extract',
+ 'run'])
+ else:
+ self.set_gui('task', _("Your Tor Browser is out of date."),
+ ['download_tarball_sig',
+ 'download_tarball',
+ 'verify',
+ 'extract',
+ 'run'])
else:
# for some reason the installed tbb is newer than the current version?
self.set_gui('error', _("Something is wrong. The version of Tor Browser Bundle you have installed is newer than the current version?"), [])
# not installed
else:
- if latest_version >= '3.':
- self.set_gui('task', _("Downloading and installing Tor Browser."),
- ['download_sha256',
- 'download_sha256_sig',
- 'download_tarball',
- 'verify',
- 'extract',
- 'run'])
- else:
- self.set_gui('task', _("Downloading and installing Tor Browser."),
- ['download_tarball_sig',
- 'download_tarball',
- 'verify',
- 'extract',
- 'run'])
+ print _('TBB is not installed, attempting to install {0}'.format(latest_version))
+ if latest_version >= '3.':
+ self.set_gui('task', _("Downloading and installing Tor Browser."),
+ ['download_sha256',
+ 'download_sha256_sig',
+ 'download_tarball',
+ 'verify',
+ 'extract',
+ 'run'])
+ else:
+ self.set_gui('task', _("Downloading and installing Tor Browser."),
+ ['download_tarball_sig',
+ 'download_tarball',
+ 'verify',
+ 'extract',
+ 'run'])
# there are different GUIs that might appear, this sets which one we want
def set_gui(self, gui, message, tasks, autostart=True):
@@ -801,6 +808,7 @@ class TBLLauncher:
# get ready for the next task
self.gui_task_i += 1
+ print _('Running task: {0}'.format(task))
if task == 'download_update_check':
print _('Downloading'), self.common.paths['update_check_url']
self.download('update check', self.common.paths['update_check_url'], self.common.paths['update_check_file'])
@@ -1034,33 +1042,33 @@ class TBLLauncher:
self.build_ui()
def verify(self):
- latest_version = self.common.settings['latest_version'][self.common.settings['preferred']]
+ latest_version = self.common.settings['latest_version'][self.common.settings['preferred']]
# initialize the progress bar
self.progressbar.set_fraction(0)
self.progressbar.set_text(_('Verifying Signature'))
self.progressbar.show()
- verified = False
- if latest_version >= '3.':
- # after 3.x we check the sha256 file's sig, and also take the sha256 of the tarball and compare
- p = subprocess.Popen(['/usr/bin/gpg', '--homedir', self.common.paths['gnupg_homedir'], '--verify', self.common.paths['sha256_sig_file']])
- self.pulse_until_process_exits(p)
- if p.returncode == 0:
- # compare with sha256 of the tarball
- tarball_sha256 = hashlib.sha256(open(self.common.paths['tarball_file'], 'r').read()).hexdigest()
- for line in open(self.common.paths['sha256_file'], 'r').readlines():
- if tarball_sha256.lower() in line.lower() and self.common.paths['tarball_filename'] in line:
- verified = True
-
- else:
- # before 3.x we just check the tarball sig
- p = subprocess.Popen(['/usr/bin/gpg', '--homedir', self.common.paths['gnupg_homedir'], '--verify', self.common.paths['tarball_sig_file']])
- self.pulse_until_process_exits(p)
- if p.returncode == 0:
- verified = True
+ verified = False
+ if latest_version >= '3.':
+ # after 3.x we check the sha256 file's sig, and also take the sha256 of the tarball and compare
+ p = subprocess.Popen(['/usr/bin/gpg', '--homedir', self.common.paths['gnupg_homedir'], '--verify', self.common.paths['sha256_sig_file']])
+ self.pulse_until_process_exits(p)
+ if p.returncode == 0:
+ # compare with sha256 of the tarball
+ tarball_sha256 = hashlib.sha256(open(self.common.paths['tarball_file'], 'r').read()).hexdigest()
+ for line in open(self.common.paths['sha256_file'], 'r').readlines():
+ if tarball_sha256.lower() in line.lower() and self.common.paths['tarball_filename'] in line:
+ verified = True
+
+ else:
+ # before 3.x we just check the tarball sig
+ p = subprocess.Popen(['/usr/bin/gpg', '--homedir', self.common.paths['gnupg_homedir'], '--verify', self.common.paths['tarball_sig_file']])
+ self.pulse_until_process_exits(p)
+ if p.returncode == 0:
+ verified = True
- if verified:
+ if verified:
self.run_task()
else:
# TODO: add the ability to report attack by posting bug to trac.torproject.org
@@ -1078,14 +1086,28 @@ class TBLLauncher:
self.progressbar.show()
self.refresh_gtk()
- # make sure this file is a tarfile
- if tarfile.is_tarfile(self.common.paths['tarball_file']):
- tf = tarfile.open(self.common.paths['tarball_file'])
- tf.extractall(self.common.paths['tbb'][self.common.settings['preferred']]['dir'])
- else:
- self.set_gui('task', _("Tor Browser Launcher doesn't understand the file format of {0}"), ['start_over'], False)
+ extracted = False
+ try:
+ if self.common.paths['tarball_file'][-2:] == 'xz':
+ # if tarball is .tar.xz
+ xz = lzma.LZMAFile(self.common.paths['tarball_file'])
+ tf = tarfile.open(fileobj=xz)
+ tf.extractall(self.common.paths['tbb'][self.common.settings['preferred']]['dir'])
+ extracted = True
+ else:
+ # if tarball is .tar.gz
+ if tarfile.is_tarfile(self.common.paths['tarball_file']):
+ tf = tarfile.open(self.common.paths['tarball_file'])
+ tf.extractall(self.common.paths['tbb'][self.common.settings['preferred']]['dir'])
+ extracted = True
+ except:
+ pass
+
+ if not extracted:
+ self.set_gui('task', _("Tor Browser Launcher doesn't understand the file format of {0}".format(self.common.paths['tarball_file'])), ['start_over'], False)
self.clear_ui()
self.build_ui()
+ return
# installation is finished, so save installed_version
self.common.settings['installed_version'] = self.common.settings['latest_version']
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/torbrowser-launcher.git
More information about the Pkg-privacy-commits
mailing list