]> git.lizzy.rs Git - torbrowser-launcher.git/commitdiff
Merge branch 'develop' into expired_key
authorMicah Lee <micah@micahflee.com>
Tue, 6 Oct 2020 23:26:02 +0000 (16:26 -0700)
committerMicah Lee <micah@micahflee.com>
Tue, 6 Oct 2020 23:26:02 +0000 (16:26 -0700)
README.md
apparmor/torbrowser.Browser.firefox
apparmor/torbrowser.Tor.tor
po/fr.po
setup.py
share/applications/torbrowser-settings.desktop
share/applications/torbrowser.desktop
share/icons/hicolor/128x128/apps/torbrowser.png [new file with mode: 0644]
share/metainfo/torbrowser.appdata.xml
share/pixmaps/torbrowser.png [deleted file]
torbrowser_launcher/common.py

index df3d365619023c53bba07f0558b4c8ea45b48b63..421fde14b86d51f4e72f9c82b5393e9061ca19e1 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Tor Browser Launcher
 
-_**Are you getting an error?** Sometimes updates in Tor Browser itself will break Tor Browser Launcher. There's a good chance that the problem you're experiencing has already been fixed in the [newest version](https://github.com/micahflee/torbrowser-launcher/releases), but Linux distributions can be slow to provide up-to-date packages. In this case, you can install from the PPA (instructions below), or [build from source](/BUILD.md)._
+_**Are you getting an error?** Sometimes updates in Tor Browser itself will break Tor Browser Launcher. There's a good chance that the problem you're experiencing has already been fixed in the [newest version](https://github.com/micahflee/torbrowser-launcher/releases). Try installing from Flatpak (instructions below), or [build from source](/BUILD.md)._
 
 Tor Browser Launcher is intended to make Tor Browser easier to install and use for GNU/Linux users. You install ```torbrowser-launcher``` from your distribution's package manager and it handles everything else:
 
@@ -16,11 +16,38 @@ You might want to check out the [security design doc](/security_design.md).
 
 ![Tor Browser Launcher screenshot](/screenshot.png)
 
-# Installing from the PPA
+# Installing
 
-If you want to always have the latest version of the `torbrowser-launcher` package before your distribution gets it, you can use my PPA:
+You can install `torbrowser-launcher` from your operating system's package manager, but it might be out-of-date and have issues working. If you want to make sure you always have the latest version, use one of the methods below to install:
+
+## Installing in any Linux distro using Flatpak
+
+Install Flatpak using these [instructions](https://flatpak.org/setup/).
+
+Then install `torbrowser-launcher` like this:
+
+```
+flatpak install flathub com.github.micahflee.torbrowser-launcher -y
+```
+
+Run `torbrowser-launcher` either by using the GUI desktop launcher, or by running:
+
+```
+flatpak run com.github.micahflee.torbrowser-launcher
+```
+
+## Installing from the PPA
+
+If you use Ubuntu or one of its derivatives:
 
 ```sh
 sudo add-apt-repository ppa:micahflee/ppa
+sudo apt update
 sudo apt install torbrowser-launcher
 ```
+
+Run `torbrowser-launcher` either by using the GUI desktop launcher, or by running:
+
+```
+torbrowser-launcher
+```
\ No newline at end of file
index f782f35ca9bdefd70057ef7dded4778ba5175e91..57c03594bb7b19eff1855ba9fd156c645be1f661 100644 (file)
@@ -63,17 +63,21 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   owner @{torbrowser_home_dir}/firefox rix,
   owner @{torbrowser_home_dir}/{,TorBrowser/UpdateInfo/}updates/[0-9]*/* rw,
   owner @{torbrowser_home_dir}/{,TorBrowser/UpdateInfo/}updates/[0-9]*/{,MozUpdater/bgupdate/}updater ix,
+  owner @{torbrowser_home_dir}/updater ix,
   owner @{torbrowser_home_dir}/TorBrowser/Data/Browser/.parentwritetest rw,
   owner @{torbrowser_home_dir}/TorBrowser/Data/Browser/profiles.ini r,
   owner @{torbrowser_home_dir}/TorBrowser/Data/Browser/profile.default/{,**} rwk,
   owner @{torbrowser_home_dir}/TorBrowser/Data/fontconfig/fonts.conf r,
+  owner @{torbrowser_home_dir}/fonts/* l,
   owner @{torbrowser_home_dir}/TorBrowser/Tor/tor px,
   owner @{torbrowser_home_dir}/TorBrowser/Tor/ r,
   owner @{torbrowser_home_dir}/TorBrowser/Tor/*.so mr,
   owner @{torbrowser_home_dir}/TorBrowser/Tor/*.so.* mr,
+  owner @{torbrowser_home_dir}/TorBrowser/Tor/libstdc++/*.so mr,
+  owner @{torbrowser_home_dir}/TorBrowser/Tor/libstdc++/*.so.* mr,
 
   # parent Firefox process when restarting after upgrade, Web Content processes
-  owner @{torbrowser_firefox_executable} ixmr -> torbrowser_firefox,
+  owner @{torbrowser_firefox_executable} pxmr -> torbrowser_firefox,
 
   /etc/mailcap r,
   /etc/mime.types r,
@@ -105,6 +109,7 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
 
   # Required for multiprocess Firefox (aka Electrolysis, i.e. e10s)
   owner /{dev,run}/shm/org.chromium.* rw,
+  owner /dev/shm/org.mozilla.ipc.[0-9]*.[0-9]* rw, # for Chromium IPC
 
   # Deny access to DRM nodes, that's granted by the X abstraction, which is
   # sourced by the gnome abstraction, that we include.
@@ -120,6 +125,8 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   deny /sys/devices/system/cpu/cpufreq/policy[0-9]*/cpuinfo_max_freq r,
   deny /sys/devices/system/cpu/*/cache/index[0-9]*/size r,
   deny /run/user/[0-9]*/dconf/user rw,
+  deny /usr/bin/lsb_release x,
+  deny capability sys_admin,
 
   # Silence denial logs about PulseAudio
   deny /etc/pulse/client.conf r,
@@ -132,5 +139,14 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} {
   /etc/xfce4/defaults.list r,
   /usr/share/xfce4/applications/ r,
 
+  # u2f (tested with Yubikey 4)
+  /sys/class/ r,
+  /sys/bus/ r,
+  /sys/class/hidraw/ r,
+  /run/udev/data/c24{7,9}:* r,
+  /dev/hidraw* rw,
+  # Yubikey NEO also needs this:
+  /sys/devices/**/hidraw/hidraw*/uevent r,
+
   #include <local/torbrowser.Browser.firefox>
 }
index b0bfce057e4130bf7044c1847929dbfa6be6f55e..f5b8177908d8e5e69855ec5dad2e6e6ba1717e77 100644 (file)
@@ -24,6 +24,7 @@ profile torbrowser_tor @{torbrowser_tor_executable} {
   # Support some of the included pluggable transports
   owner @{torbrowser_home_dir}/TorBrowser/Tor/PluggableTransports/** rix,
   @{PROC}/sys/net/core/somaxconn r,
+  #include <abstractions/ssl_certs>
 
   # Silence file_inherit logs
   deny @{torbrowser_home_dir}/{browser/,}omni.ja r,
@@ -31,6 +32,9 @@ profile torbrowser_tor @{torbrowser_tor_executable} {
   deny @{torbrowser_home_dir}/TorBrowser/Data/Browser/profile.default/.parentlock rw,
   deny @{torbrowser_home_dir}/TorBrowser/Data/Browser/profile.default/extensions/*.xpi r,
   deny @{torbrowser_home_dir}/TorBrowser/Data/Browser/profile.default/startupCache/* r,
+  # Silence logs from included pluggable transports
+  deny /etc/hosts r,
+  deny /etc/services r,
 
   @{PROC}/sys/kernel/random/uuid r,
   /sys/devices/system/cpu/ r,
index 6e1e8b568528ac780fa7f47f4236b821e74d34b1..7b0d9b13e56451836f74c7d7b62227963e48fa5a 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -24,12 +24,12 @@ msgstr "Tor Browser Launcher"
 
 #: __init__.py:66
 msgid "By Micah Lee, licensed under MIT"
-msgstr "Par Micah Lee, sous license MIT"
+msgstr "Par Micah Lee, sous licence MIT"
 
 #: __init__.py:67
 #, python-brace-format
 msgid "version {0}"
-msgstr ""
+msgstr "version {0}"
 
 #: common.py:100
 #, python-brace-format
@@ -48,29 +48,27 @@ msgstr "Impossible de créer le dossier {0}"
 
 #: common.py:187
 msgid "Creating GnuPG homedir"
-msgstr "Creation du dossier GnuPG"
+msgstr "Création du dossier GnuPG"
 
 #: common.py:254
 #, python-format
 msgid "Could not import key with fingerprint: %s."
-msgstr "Impossible d'importer la clé: %s"
+msgstr "Impossible d'importer la clé avec l'empreinte : %s."
 
 #: common.py:259
 msgid "Not all keys were imported successfully!"
-msgstr "Certaines clés n'ont pas pu être importées"
+msgstr "Certaines clés n'ont pas pu être importées !"
 
 #: launcher.py:83
-#, fuzzy
 msgid "Downloading Tor Browser for the first time."
-msgstr "Premier téléchargement et installation du Tor Browser"
+msgstr "Téléchargement du Navigateur Tor pour la première fois."
 
 #: launcher.py:85
-#, fuzzy
 msgid ""
 "Your version of Tor Browser is out-of-date. Downloading the newest version."
 msgstr ""
-"Votre version du Tor Browser est obsolète. Téléchargement et installation de "
-"la nouvelle version."
+"Votre version du Navigateur Tor est obsolète. Téléchargement de la nouvelle "
+"version."
 
 #: launcher.py:100
 msgid "Downloading over Tor"
@@ -78,7 +76,7 @@ msgstr "Télécharger à travers Tor"
 
 #: launcher.py:111
 msgid "Tor Browser"
-msgstr "Tor Browser"
+msgstr "Navigateur Tor"
 
 #: launcher.py:128
 msgid "Start"
@@ -86,11 +84,11 @@ msgstr "Démarrer"
 
 #: launcher.py:174
 msgid "Yes"
-msgstr ""
+msgstr "Oui"
 
 #: launcher.py:178
 msgid "Exit"
-msgstr ""
+msgstr "Quitter"
 
 #: launcher.py:192 settings.py:136
 msgid "Cancel"
@@ -103,11 +101,11 @@ msgstr "Téléchargement"
 
 #: launcher.py:238
 msgid "Latest version: {}"
-msgstr "Dernière version: {}"
+msgstr "Dernière version : {}"
 
 #: launcher.py:241
 msgid "Error detecting Tor Browser version."
-msgstr "Impossible de détecter la version du Tor Browser."
+msgstr "Impossible de détecter la version du Navigateur Tor."
 
 #: launcher.py:256 launcher.py:357
 msgid "Verifying Signature"
@@ -127,7 +125,7 @@ msgstr "Télécharger à nouveau"
 
 #: launcher.py:279 launcher.py:295
 msgid "(over Tor)"
-msgstr ""
+msgstr "(à travers Tor)"
 
 #: launcher.py:293
 msgid "Downloaded"
@@ -147,29 +145,29 @@ msgid ""
 "The version of Tor Browser you have installed is earlier than it should be, "
 "which could be a sign of an attack!"
 msgstr ""
-"La version du Tor Browser installée est antérieure à l'actuelle, ce qui peut "
-"être la signature d'une attaque!"
+"La version du Navigateur Tor que vous avez installé est antérieure à ce "
+"qu'elle devrait, ce qui peut être le signe d'une attaque !"
 
 #: launcher.py:446
-#, fuzzy
 msgid "Downloading Tor Browser over again."
-msgstr "Nouveau téléchargement du Tor Browser Bundle."
+msgstr "Télécharger le Navigateur Tor à nouveau."
 
 #: launcher.py:516 launcher.py:525 launcher.py:533
 msgid "Download Error:"
-msgstr "Erreur de téléchargement:"
+msgstr "Erreur de téléchargement :"
 
 #: launcher.py:517
 msgid "You are currently using a non-default mirror"
-msgstr "Vous utilisez actuellement un miroir non-défaut"
+msgstr "Vous utilisez actuellement un miroir n'étant pas celui par défaut"
 
 #: launcher.py:518
 msgid "Would you like to switch back to the default?"
-msgstr "Voulez-vous revenir à la valeur par défaut?"
+msgstr "Voulez-vous revenir à la valeur par défaut ?"
 
 #: launcher.py:527
 msgid "Would you like to try the English version of Tor Browser instead?"
-msgstr "Voulez-vous essayer la version anglophone du Tor Browser à la place?"
+msgstr ""
+"Voulez-vous essayer la version anglophone du Navigateur Tor à la place ?"
 
 #: launcher.py:548
 #, python-brace-format
@@ -179,10 +177,14 @@ msgid ""
 "\n"
 "You may be under attack."
 msgstr ""
+"Certificat SSL invalide pour :\n"
+"{0}\n"
+"\n"
+"Vous pourriez être attaqué."
 
 #: launcher.py:550
 msgid "Try the download again using Tor?"
-msgstr "Essayez de télécharger à nouveau à travers Tor?"
+msgstr "Essayer de télécharger à nouveau à travers Tor ?"
 
 #: launcher.py:559
 #, python-brace-format
@@ -194,6 +196,12 @@ msgid ""
 "Trying to download over Tor. Are you sure Tor is configured correctly and "
 "running?"
 msgstr ""
+"Impossible de démarrer le téléchargement :\n"
+"\n"
+"{0}\n"
+"\n"
+"Essayez de télécharger à travers Tor. Êtes-vous sûr que Tor est configuré "
+"correctement et fonctionne ?"
 
 #: launcher.py:563
 #, python-brace-format
@@ -204,11 +212,11 @@ msgid ""
 "\n"
 "Are you connected to the internet?"
 msgstr ""
-"Impossible de démarrer le téléchargement:\n"
+"Impossible de démarrer le téléchargement :\n"
 "\n"
 "{0}\n"
 "\n"
-"Êtes-vous connecté à Internet?"
+"Êtes-vous connecté à Internet ?"
 
 #: settings.py:46
 msgid "Tor Browser Launcher Settings"
@@ -220,7 +228,7 @@ msgstr "Télécharger à travers le Tor installé sur le système"
 
 #: settings.py:57
 msgid "Force downloading English version of Tor Browser"
-msgstr "Forcer le téléchargement de la version anglophone du Tor Browser"
+msgstr "Forcer le téléchargement de la version anglophone du Navigateur Tor"
 
 #: settings.py:66
 msgid "Tor server"
@@ -228,26 +236,25 @@ msgstr "Serveur Tor"
 
 #: settings.py:82
 msgid "Status: Installed"
-msgstr "Status: Installé"
+msgstr "Statu: Installé"
 
 #: settings.py:84
 msgid "Status: Not Installed"
-msgstr "Status: Pas installé"
+msgstr "Statu: Pas installé"
 
 #: settings.py:87
 msgid "Install Tor Browser"
-msgstr "Installer le Tor Browser"
+msgstr "Installer le Navigateur Tor"
 
 #: settings.py:92
 msgid "Reinstall Tor Browser"
-msgstr "Réinstaller le Tor Browser"
+msgstr "Réinstaller le Navigateur Tor"
 
 #: settings.py:115
 msgid "Mirror"
 msgstr "Miroir"
 
 #: settings.py:131
-#, fuzzy
 msgid "Save && Exit"
 msgstr "Enregistrer et quitter"
 
index 6bb44b69325e904d3c10b1397128ad8f80d662c9..1649eb4690fe581a44bb0641cc1fb4b09cbbd7d3 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -69,9 +69,8 @@ with open(os.path.join(SHARE, "torbrowser-launcher/version")) as buf:
 
 datafiles = []
 for root, dirs, files in os.walk(SHARE):
-    datafiles.append(
-        (os.path.join(sys.prefix, root), [os.path.join(root, f) for f in files])
-    )
+    if files:
+        datafiles.append((root, [os.path.join(root, f) for f in files]))
 
 # disable shipping apparmor profiles until they work in ubuntu (#128)
 if distro != "Ubuntu":
@@ -92,7 +91,7 @@ if distro != "Ubuntu":
             ("/etc/apparmor.d/tunables/", ["apparmor/tunables/torbrowser"]),
         ]
 
-datafiles += [("/usr/share/locale/", create_mo_files())]
+datafiles += [(os.path.dirname(f), [f]) for f in create_mo_files()]
 
 setup(
     name="torbrowser-launcher",
index c2c18d1b481c90f985c74ab5551fe804caecb658..4f12adb8f814d1055113bfd6928d6188b0b5aa70 100644 (file)
@@ -3,6 +3,7 @@ Name=Tor Browser Launcher Settings
 Name[fr]=Tor Browser Launcher configurations
 Name[hu]=Tor-böngésző indító beállításai
 Name[nl]=Tor Browser Launcher Instellingen
+Name[pt_BR]=Navegador Tor (Configurações do Lançador)
 Name[ru]=Tor Browser (настройки запуска)
 GenericName=Tor Browser Launcher Settings
 GenericName[hu]=Tor-böngésző indító beállításai
@@ -10,6 +11,7 @@ Comment=Tor Browser Launcher Settings
 Comment[fr]=Tor Browser Launcher configurations
 Comment[hu]=Tor-böngésző indító beállításai
 Comment[nl]=Tor Browser Launcher Instellingen
+Comment[pt_BR]=Navegador Tor (Configurações do Lançador)
 Comment[ru]=Tor Browser (настройки запуска)
 Exec=torbrowser-launcher --settings
 Terminal=false
index 739be8d252d17580a3fd1fc91b8139faca04e32f..7a25076be1c2d19c264132c401b01dcb630a3457 100644 (file)
@@ -1,10 +1,12 @@
 [Desktop Entry]
 Name=Tor Browser
 Name[hu]=Tor-böngésző
+Name[pt_BR]=Navegador Tor
 GenericName=Tor browser
 GenericName[hu]=Tor böngésző indító
 Comment=Launch Tor Browser
 Comment[hu]=Tor böngésző indító
+Comment[pt_BR]=Navegador Tor
 Exec=torbrowser-launcher %u
 Terminal=false
 Type=Application
diff --git a/share/icons/hicolor/128x128/apps/torbrowser.png b/share/icons/hicolor/128x128/apps/torbrowser.png
new file mode 100644 (file)
index 0000000..18f3572
Binary files /dev/null and b/share/icons/hicolor/128x128/apps/torbrowser.png differ
index 5577868c61158c849a363c8ca1a37771efed2f8e..95c494300aea86e1b92054e66b31afefd35d0ef7 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Copyright 2014 Micah Lee <micah@micahflee.com> -->
-<component>
- <id>org.torproject.torbrowser.desktop</id>
+<component type="desktop-application">
+ <id>torbrowser.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <project_license>MIT</project_license>
  <name>Tor Browser Launcher</name>
@@ -27,4 +27,5 @@
  </screenshots>
  <url type="homepage">https://github.com/micahflee/torbrowser-launcher</url>
  <update_contact>micah@micahflee.com</update_contact>
+ <content_rating type="oars-1.1"/>
 </component>
diff --git a/share/pixmaps/torbrowser.png b/share/pixmaps/torbrowser.png
deleted file mode 100644 (file)
index 18f3572..0000000
Binary files a/share/pixmaps/torbrowser.png and /dev/null differ
index 2cad29ff84f59589dd782f0d201771d3c5fd23b6..e7af753a4218ad7abc1fafe017badb8b4a5694da 100644 (file)
@@ -115,6 +115,14 @@ class Common(object):
             if self.language not in available_languages:
                 self.language = "en-US"
 
+    # get value of environment variable, if it is not set return the default value
+    @staticmethod
+    def get_env(var_name, default_value):
+        value = os.getenv(var_name)
+        if not value:
+            value = default_value
+        return value
+
     # build all relevant paths
     def build_paths(self, tbb_version=None):
         homedir = os.getenv("HOME")
@@ -130,10 +138,10 @@ class Common(object):
         if not os.access(homedir, os.W_OK):
             self.set_gui("error", _("{0} is not writable").format(homedir), [], False)
 
-        tbb_config = "{0}/.config/torbrowser".format(homedir)
-        tbb_cache = "{0}/.cache/torbrowser".format(homedir)
-        tbb_local = "{0}/.local/share/torbrowser".format(homedir)
-        old_tbb_data = "{0}/.torbrowser".format(homedir)
+        tbb_config = '{0}/torbrowser'.format(self.get_env('XDG_CONFIG_HOME', '{0}/.config'.format(homedir)))
+        tbb_cache = '{0}/torbrowser'.format(self.get_env('XDG_CACHE_HOME', '{0}/.cache'.format(homedir)))
+        tbb_local = '{0}/torbrowser'.format(self.get_env('XDG_DATA_HOME', '{0}/.local/share'.format(homedir)))
+        old_tbb_data = '{0}/.torbrowser'.format(homedir)
 
         if tbb_version:
             # tarball filename