Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package torbrowser-launcher for openSUSE:Factory checked in at 2022-12-15 19:25:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/torbrowser-launcher (Old) and /work/SRC/openSUSE:Factory/.torbrowser-launcher.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "torbrowser-launcher" Thu Dec 15 19:25:58 2022 rev:23 rq:1043136 version:0.3.6 Changes: -------- --- /work/SRC/openSUSE:Factory/torbrowser-launcher/torbrowser-launcher.changes 2022-08-25 15:09:05.057213854 +0200 +++ /work/SRC/openSUSE:Factory/.torbrowser-launcher.new.1835/torbrowser-launcher.changes 2022-12-15 19:26:22.592456170 +0100 @@ -1,0 +2,8 @@ +Wed Dec 14 21:14:02 UTC 2022 - Atri Bhattacharya <badshah...@gmail.com> + +- Update to version 0.3.6: + * Tor Browser 12.0 no longer uses locales, so the download URL + and local path have changed +- Drop torbrowser-launcher-gui-move-argtype.patch: upstreamed. + +------------------------------------------------------------------- Old: ---- torbrowser-launcher-0.3.5.tar.gz torbrowser-launcher-gui-move-argtype.patch New: ---- torbrowser-launcher-0.3.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ torbrowser-launcher.spec ++++++ --- /var/tmp/diff_new_pack.zukjqX/_old 2022-12-15 19:26:23.096459038 +0100 +++ /var/tmp/diff_new_pack.zukjqX/_new 2022-12-15 19:26:23.104459083 +0100 @@ -17,15 +17,13 @@ Name: torbrowser-launcher -Version: 0.3.5 +Version: 0.3.6 Release: 0 Summary: Tool for launching and easy-updates of Tor Browser License: MIT Group: Productivity/Networking/Web/Utilities URL: https://github.com/micahflee/torbrowser-launcher Source0: https://github.com/micahflee/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz -# PATCH-FIX-UPSTREAM torbrowser-launcher-gui-move-argtype.patch badshah...@gmail.com -- Ensure arguments to gui-move are integers, not floats -Patch0: https://patch-diff.githubusercontent.com/raw/micahflee/torbrowser-launcher/pull/646.patch#/torbrowser-launcher-gui-move-argtype.patch BuildRequires: apparmor-abstractions BuildRequires: gpg2 BuildRequires: hicolor-icon-theme ++++++ torbrowser-launcher-0.3.5.tar.gz -> torbrowser-launcher-0.3.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/CHANGELOG.md new/torbrowser-launcher-0.3.6/CHANGELOG.md --- old/torbrowser-launcher-0.3.5/CHANGELOG.md 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/CHANGELOG.md 2022-12-14 03:19:17.000000000 +0100 @@ -1,5 +1,9 @@ # Tor Browser Launcher Changelog +## 0.3.6 + +* Tor Browser 12.0 no longer uses locales, so the download URL and local path have changed + ## 0.3.5 * Fix refreshing Tor Browser signing key in Flatpak package diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/LICENSE new/torbrowser-launcher-0.3.6/LICENSE --- old/torbrowser-launcher-0.3.5/LICENSE 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/LICENSE 2022-12-14 03:19:17.000000000 +0100 @@ -1,7 +1,4 @@ -Tor Browser Launcher -https://github.com/micahflee/torbrowser-launcher/ - -Copyright (c) 2013-2021 Micah Lee <mi...@micahflee.com> +Copyright (c) 2013-2022 Micah Lee <mi...@micahflee.com> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/apparmor/torbrowser.Browser.firefox new/torbrowser-launcher-0.3.6/apparmor/torbrowser.Browser.firefox --- old/torbrowser-launcher-0.3.5/apparmor/torbrowser.Browser.firefox 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/apparmor/torbrowser.Browser.firefox 2022-12-14 03:19:17.000000000 +0100 @@ -5,8 +5,11 @@ profile torbrowser_firefox @{torbrowser_firefox_executable} { #include <abstractions/audio> + #include <abstractions/dri-enumerate> #include <abstractions/gnome> #include <abstractions/ibus> + #include <abstractions/mesa> + #include <abstractions/opencl> #include if exists <abstractions/vulkan> # Uncomment the following lines if you want to give the Tor Browser read-write @@ -27,6 +30,7 @@ deny /etc/host.conf r, deny /etc/hosts r, deny /etc/nsswitch.conf r, + deny /etc/os-release r, deny /etc/resolv.conf r, deny /etc/passwd r, deny /etc/group r, @@ -42,7 +46,9 @@ owner @{PROC}/@{pid}/environ r, owner @{PROC}/@{pid}/fd/ r, owner @{PROC}/@{pid}/mountinfo r, + owner @{PROC}/@{pid}/smaps r, owner @{PROC}/@{pid}/stat r, + owner @{PROC}/@{pid}/statm r, owner @{PROC}/@{pid}/status r, owner @{PROC}/@{pid}/task/*/stat r, @{PROC}/sys/kernel/random/uuid r, @@ -98,6 +104,8 @@ /usr/share/homepage/ r, /usr/share/homepage/** r, + /sys/bus/pci/devices/ r, + @{sys}/devices/pci[0-9]*/**/irq r, /sys/devices/system/cpu/ r, /sys/devices/system/cpu/present r, /sys/devices/system/node/ r, @@ -115,12 +123,10 @@ 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. - deny /dev/dri/** rwklx, + # Required for Wayland display protocol support + owner /dev/shm/wayland.mozilla.ipc.[0-9]* rw, # Silence denial logs about permissions we don't need - deny /dev/dri/ rwklx, deny @{HOME}/.cache/fontconfig/ rw, deny @{HOME}/.cache/fontconfig/** rw, deny @{HOME}/.config/gtk-2.0/ rw, @@ -146,7 +152,7 @@ /sys/class/ r, /sys/bus/ r, /sys/class/hidraw/ r, - /run/udev/data/c24{7,9}:* r, + /run/udev/data/c24{5,7,9}:* r, /dev/hidraw* rw, # Yubikey NEO also needs this: /sys/devices/**/hidraw/hidraw*/uevent r, @@ -157,5 +163,10 @@ owner @{PROC}/@{pid}/{gid,uid}_map w, owner @{PROC}/@{pid}/setgroups w, + # Remove these rules once we can assume abstractions/vulkan is recent enough + # to include them + /etc/glvnd/egl_vendor.d/{*,.json} r, + /usr/share/glvnd/egl_vendor.d/{,*.json} r, + #include <local/torbrowser.Browser.firefox> } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/build_deb.sh new/torbrowser-launcher-0.3.6/build_deb.sh --- old/torbrowser-launcher-0.3.5/build_deb.sh 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/build_deb.sh 2022-12-14 03:19:17.000000000 +0100 @@ -1,6 +1,6 @@ #!/bin/sh -VERSION=`cat share/torbrowser-launcher/version` +VERSION=$(cat share/torbrowser-launcher/version) # clean up from last build rm -r build deb_dist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/build_rpm.sh new/torbrowser-launcher-0.3.6/build_rpm.sh --- old/torbrowser-launcher-0.3.5/build_rpm.sh 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/build_rpm.sh 2022-12-14 03:19:17.000000000 +0100 @@ -1,6 +1,6 @@ #!/bin/sh -VERSION=`cat share/torbrowser-launcher/version` +VERSION=$(cat share/torbrowser-launcher/version) # clean up from last build rm -r build dist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/po/tr.po new/torbrowser-launcher-0.3.6/po/tr.po --- old/torbrowser-launcher-0.3.5/po/tr.po 1970-01-01 01:00:00.000000000 +0100 +++ new/torbrowser-launcher-0.3.6/po/tr.po 2022-12-14 03:19:17.000000000 +0100 @@ -0,0 +1,255 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# OÄuz Ersen <o...@ersen.moe>, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-11-27 08:41+0300\n" +"PO-Revision-Date: 2022-03-06 09:00+0300\n" +"Last-Translator: OÄuz Ersen <o...@ersen.moe>\n" +"Language-Team: Turkish <tr>\n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#: common.py:159 +#, python-brace-format +msgid "Error creating {0}" +msgstr "{0} oluÅturulurken hata" + +#: common.py:270 +#, python-brace-format +msgid "Cannot create directory {0}" +msgstr "{0} dizini oluÅturulamıyor" + +#: common.py:273 +#, python-brace-format +msgid "{0} is not writable" +msgstr "{0} yazılabilir deÄil" + +#: common.py:280 +msgid "Creating GnuPG homedir" +msgstr "GnuPG ana dizini oluÅturuluyor" + +#: common.py:371 +#, python-format +msgid "Could not import key with fingerprint: %s." +msgstr "%s parmak izine sahip anahtar içe aktarılamadı." + +#: common.py:378 +msgid "Not all keys were imported successfully!" +msgstr "Tüm anahtarlar baÅarıyla içe aktarılmadı!" + +#: __init__.py:71 launcher.py:528 +msgid "Tor Browser Launcher" +msgstr "Tor Browser BaÅlatıcı" + +#: __init__.py:72 +msgid "By Micah Lee, licensed under MIT" +msgstr "Micah Lee tarafından, MIT lisansı altında lisanslandı" + +#: __init__.py:73 +#, python-brace-format +msgid "version {0}" +msgstr "sürüm {0}" + +#: launcher.py:86 +msgid "Downloading Tor Browser for the first time." +msgstr "Tor Browser ilk kez indiriliyor." + +#: launcher.py:89 +msgid "" +"Your version of Tor Browser is out-of-date. Downloading the newest version." +msgstr "Tor Browser sürümünüz güncel deÄil. En yeni sürüm indiriliyor." + +#: launcher.py:110 +msgid "Downloading over Tor" +msgstr "Tor üzerinden indiriliyor" + +#: launcher.py:121 +msgid "Tor Browser" +msgstr "Tor Browser" + +#: launcher.py:140 +msgid "Start" +msgstr "BaÅlat" + +#: launcher.py:190 +msgid "Yes" +msgstr "Evet" + +#: launcher.py:194 +msgid "Exit" +msgstr "ÃıkıÅ" + +#: launcher.py:208 settings.py:147 +msgid "Cancel" +msgstr "İptal" + +#: launcher.py:247 launcher.py:268 launcher.py:277 launcher.py:316 +#: launcher.py:319 +msgid "Downloading" +msgstr "İndiriliyor" + +#: launcher.py:258 +msgid "Latest version: {}" +msgstr "En son sürüm: {}" + +#: launcher.py:262 +msgid "Error detecting Tor Browser version." +msgstr "Tor Browser sürümü algılanırken hata oluÅtu." + +#: launcher.py:292 launcher.py:397 +msgid "Verifying Signature" +msgstr "İmza DoÄrulanıyor" + +#: launcher.py:296 +msgid "Extracting" +msgstr "Ãıkartılıyor" + +#: launcher.py:300 +msgid "Running" +msgstr "ÃalıÅtırılıyor" + +#: launcher.py:304 +msgid "Starting download over again" +msgstr "İndirme yeniden baÅlatılıyor" + +#: launcher.py:316 launcher.py:335 +msgid "(over Tor)" +msgstr "(Tor üzerinden)" + +#: launcher.py:331 +msgid "Downloaded" +msgstr "İndirildi" + +#: launcher.py:439 +msgid "Installing" +msgstr "Kuruluyor" + +#: launcher.py:448 +#, python-brace-format +msgid "Tor Browser Launcher doesn't understand the file format of {0}" +msgstr "Tor Browser BaÅlatıcı, {0} dosya biçimini anlamıyor" + +#: launcher.py:479 +msgid "" +"The version of Tor Browser you have installed is earlier than it should be, " +"which could be a sign of an attack!" +msgstr "" +"KurduÄunuz Tor Browser sürümü olması gerekenden daha eski ve bu bir saldırı " +"iÅareti olabilir!" + +#: launcher.py:496 +msgid "Downloading Tor Browser over again." +msgstr "Tor Browser tekrar indiriliyor." + +#: launcher.py:568 launcher.py:582 launcher.py:591 +msgid "Download Error:" +msgstr "İndirme Hatası:" + +#: launcher.py:570 +msgid "You are currently using a non-default mirror" +msgstr "Åu anda öntanımlı olmayan bir yansı kullanıyorsunuz" + +#: launcher.py:572 +msgid "Would you like to switch back to the default?" +msgstr "Ãntanımlı olana geri dönmek ister misiniz?" + +#: launcher.py:585 +msgid "Would you like to try the English version of Tor Browser instead?" +msgstr "Bunun yerine Tor Browser'ın İngilizce sürümünü denemek ister misiniz?" + +#: launcher.py:607 +#, python-brace-format +msgid "" +"Invalid SSL certificate for:\n" +"{0}\n" +"\n" +"You may be under attack." +msgstr "" +"Åunun için geçersiz SSL sertifikası:\n" +"{0}\n" +"\n" +"Saldırı altında olabilirsiniz." + +#: launcher.py:610 +msgid "Try the download again using Tor?" +msgstr "Tor kullanarak indirme tekrar denensin mi?" + +#: launcher.py:620 +#, python-brace-format +msgid "" +"Error starting download:\n" +"\n" +"{0}\n" +"\n" +"Trying to download over Tor. Are you sure Tor is configured correctly and " +"running?" +msgstr "" +"İndirme baÅlatılırken hata oluÅtu:\n" +"\n" +"{0}\n" +"\n" +"Tor üzerinden indirmeye çalıÅılıyor. Tor'un doÄru yapılandırıldıÄından ve " +"çalıÅtıÄından emin misiniz?" + +#: launcher.py:626 +#, python-brace-format +msgid "" +"Error starting download:\n" +"\n" +"{0}\n" +"\n" +"Are you connected to the internet?" +msgstr "" +"İndirme baÅlatılırken hata oluÅtu:\n" +"\n" +"{0}\n" +"\n" +"İnternete baÄlı mısınız?" + +#: settings.py:47 +msgid "Tor Browser Launcher Settings" +msgstr "Tor Browser BaÅlatıcı Ayarları" + +#: settings.py:51 +msgid "Download over system Tor" +msgstr "Sistem Tor'u üzerinden indir" + +#: settings.py:59 +msgid "Force downloading English version of Tor Browser" +msgstr "Tor Browser'ın İngilizce sürümünü indirmeye zorla" + +#: settings.py:69 +msgid "Tor server" +msgstr "Tor sunucusu" + +#: settings.py:85 +msgid "Status: Installed" +msgstr "Durum: Kurulu" + +#: settings.py:87 +msgid "Status: Not Installed" +msgstr "Durum: Kurulu DeÄil" + +#: settings.py:90 +msgid "Install Tor Browser" +msgstr "Tor Browser'ı Kur" + +#: settings.py:97 +msgid "Reinstall Tor Browser" +msgstr "Tor Browser'ı Yeniden Kur" + +#: settings.py:122 +msgid "Mirror" +msgstr "Yansı" + +#: settings.py:140 +msgid "Save && Exit" +msgstr "Kaydet && Ãık" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/ppa_release.sh new/torbrowser-launcher-0.3.6/ppa_release.sh --- old/torbrowser-launcher-0.3.5/ppa_release.sh 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/ppa_release.sh 2022-12-14 03:19:17.000000000 +0100 @@ -12,18 +12,18 @@ # login = anonymous # allow_unsigned_uploads = 0 -VERSION=`cat share/torbrowser-launcher/version` +VERSION=$(cat share/torbrowser-launcher/version) -# Make a source pacakge +# Make a source package rm -rf deb_dist python3 setup.py --command-packages=stdeb.command sdist_dsc # Sign it -cd deb_dist/torbrowser-launcher-$VERSION +cd "deb_dist/torbrowser-launcher-$VERSION" dpkg-buildpackage -S #dpkg-buildpackage -S -pqubes-gpg-client-wrapper -k927F419D7EC82C2F149C1BD1403C2657CD994F73 cd .. # Push it to the ppa -dput ppa torbrowser-launcher_$VERSION-1_source.changes +dput ppa "torbrowser-launcher_$VERSION-1_source.changes" cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/security_design.md new/torbrowser-launcher-0.3.6/security_design.md --- old/torbrowser-launcher-0.3.5/security_design.md 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/security_design.md 2022-12-14 03:19:17.000000000 +0100 @@ -1,6 +1,6 @@ # Tor Browser Launcher Security Design -This document could be improved. At the moment it's copy/pasted verbatum from a post to the [debian bug tracker](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752275). +This document could be improved. At the moment it's copy/pasted verbatim from a post to the [debian bug tracker](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752275). ## TLS/x.509 security @@ -12,7 +12,7 @@ Downgrade attacks shouldn't be possible, unless they're committed by Tor devs themselves. If an attacker captures a valid old request to https://check.torproject.org/RecommendedTBBVersions that claims that the current version is an older version than what's currently installed, torbrowser-launcher prevents it from installing. (And by "installing" I mean extracting to the user's home dir.) -However, there is the scenereo where the user has set a third-party mirror to download from instead of the default. The third-party mirror could serve a tarball and sig that have filenames of the latest version, but are actually an older version. This attack is mitigated by the fact that all mirror options use HTTPS -- though none of the mirror certs are pinned, so in this case it would rely on CA infrastructure. This is an edge case, and would only work against users who are using a non-default mirror, and who also have access to a trusted CA signing key. +However, there is the scenario where the user has set a third-party mirror to download from instead of the default. The third-party mirror could serve a tarball and sig that have filenames of the latest version, but are actually an older version. This attack is mitigated by the fact that all mirror options use HTTPS -- though none of the mirror certs are pinned, so in this case it would rely on CA infrastructure. This is an edge case, and would only work against users who are using a non-default mirror, and who also have access to a trusted CA signing key. ## Installing Tor Browser system-wide @@ -20,6 +20,6 @@ ## What secret keys/access attackers need to succeed -Yes, attackers that 1) have access to the trusted keys included with torbrowser-launcher and 2) have access to modify files on https://www.torproject.org/ or have access to its TLS key are able to get arbitrary code exec as the current user when they open Tor Browser. This may or may not include any of the Tor devs whose keys are included. +Yes, attackers that 1) have access to the trusted keys included with torbrowser-launcher and 2) have access to modify files on https://www.torproject.org/ or have access to its TLS key are able to get arbitrary code exec as the current user when they open Tor Browser. This may or may not include any of the Tor devs whose keys are included. But like Holger said above, this is a feature, not a bug. This is the whole purpose of torbrowser-launcher, so users can automatically install TBB updates that are signed by Tor devs. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/setup.py new/torbrowser-launcher-0.3.6/setup.py --- old/torbrowser-launcher-0.3.5/setup.py 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/setup.py 2022-12-14 03:19:17.000000000 +0100 @@ -119,10 +119,10 @@ scripts=["torbrowser-launcher"], data_files=datafiles, install_requires=[ - 'gpg', - 'packaging', - 'PyQt5', - 'requests', - 'PySocks', + "gpg", + "packaging", + "PyQt5", + "requests", + "PySocks", ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/share/applications/torbrowser-settings.desktop new/torbrowser-launcher-0.3.6/share/applications/torbrowser-settings.desktop --- old/torbrowser-launcher-0.3.5/share/applications/torbrowser-settings.desktop 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/share/applications/torbrowser-settings.desktop 2022-12-14 03:19:17.000000000 +0100 @@ -10,11 +10,13 @@ Name[ru]=Tor Browser (наÑÑÑойки запÑÑка) Name[sv]=Inställningar för Tor Browser Launcher Name[be]=ÐÐ°Ð»Ð°Ð´Ñ Ð·Ð°Ð¿ÑÑкалÑнÑка Tor Browser +Name[tr]=Tor Browser BaÅlatıcı Ayarları GenericName=Tor Browser Launcher Settings GenericName[da]=Indstillinger for Tor Browser-opstarter GenericName[hr]=Tor preglednik â postavke pokretanja GenericName[hu]=Tor-böngészÅ indÃtó beállÃtásai GenericName[be]=ÐÐ°Ð»Ð°Ð´Ñ Ð·Ð°Ð¿ÑÑкалÑнÑка Tor Browser +GenericName[tr]=Tor Browser BaÅlatıcı Ayarları Comment=Tor Browser Launcher Settings Comment[cs]=Tor Browser Launcher nastavenà Comment[da]=Indstillinger for Tor Browser-opstarter @@ -26,6 +28,7 @@ Comment[ru]=Tor Browser (наÑÑÑойки запÑÑка) Comment[sv]=Inställningar för Tor Browser Launcher Comment[be]=ÐÐ°Ð»Ð°Ð´Ñ Ð·Ð°Ð¿ÑÑкалÑнÑка Tor Browser +Comment[tr]=Tor Browser BaÅlatıcı Ayarları Exec=torbrowser-launcher --settings Terminal=false Type=Application diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/share/applications/torbrowser.desktop new/torbrowser-launcher-0.3.6/share/applications/torbrowser.desktop --- old/torbrowser-launcher-0.3.5/share/applications/torbrowser.desktop 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/share/applications/torbrowser.desktop 2022-12-14 03:19:17.000000000 +0100 @@ -7,11 +7,13 @@ Name[hu]=Tor-böngészÅ Name[pt_BR]=Navegador Tor Name[sv]=Tor Browser +Name[tr]=Tor Browser GenericName=Tor Browser GenericName[be]=Tor Browser GenericName[da]=Tor Browser GenericName[hr]=Tor preglednik GenericName[hu]=Tor böngészÅ indÃtó +GenericName[tr]=Tor Browser Comment=Launch Tor Browser Comment[be]=ÐапÑÑк Tor Browser Comment[cs]=Spustit Tor Browser @@ -20,6 +22,7 @@ Comment[hu]=Tor böngészÅ indÃtó Comment[pt_BR]=Navegador Tor Comment[sv]=Starta Tor Browser +Comment[tr]=Tor Browser BaÅlat Exec=torbrowser-launcher %u Terminal=false Type=Application diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/share/metainfo/torbrowser.appdata.xml new/torbrowser-launcher-0.3.6/share/metainfo/torbrowser.appdata.xml --- old/torbrowser-launcher-0.3.5/share/metainfo/torbrowser.appdata.xml 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/share/metainfo/torbrowser.appdata.xml 2022-12-14 03:19:17.000000000 +0100 @@ -29,6 +29,6 @@ <update_contact>mi...@micahflee.com</update_contact> <content_rating type="oars-1.1"/> <releases> - <release version="0.3.5" date="2021-06-21"/> + <release version="0.3.6" date="2022-12-13"/> </releases> </component> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/share/torbrowser-launcher/version new/torbrowser-launcher-0.3.6/share/torbrowser-launcher/version --- old/torbrowser-launcher-0.3.5/share/torbrowser-launcher/version 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/share/torbrowser-launcher/version 2022-12-14 03:19:17.000000000 +0100 @@ -1 +1 @@ -0.3.5 +0.3.6 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/torbrowser_launcher/__init__.py new/torbrowser-launcher-0.3.6/torbrowser_launcher/__init__.py --- old/torbrowser-launcher-0.3.5/torbrowser_launcher/__init__.py 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/torbrowser_launcher/__init__.py 2022-12-14 03:19:17.000000000 +0100 @@ -90,8 +90,8 @@ desktop = app.desktop() window_size = gui.size() gui.move( - (desktop.width() - window_size.width()) / 2, - (desktop.height() - window_size.height()) / 2, + (desktop.width() - window_size.width()) // 2, + (desktop.height() - window_size.height()) // 2, ) gui.show() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/torbrowser_launcher/common.py new/torbrowser-launcher-0.3.6/torbrowser_launcher/common.py --- old/torbrowser-launcher-0.3.5/torbrowser_launcher/common.py 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/torbrowser_launcher/common.py 2022-12-14 03:19:17.000000000 +0100 @@ -30,7 +30,6 @@ import sys import platform import subprocess -import locale import pickle import json import re @@ -57,87 +56,19 @@ self.tbl_version = tbl_version # initialize the app + self.architecture = "x86_64" if "64" in platform.architecture()[0] else "i686" self.default_mirror = "https://dist.torproject.org/" - self.discover_arch_lang() self.build_paths() + self.torbrowser12_rename_old_tbb() for d in self.paths["dirs"]: self.mkdir(self.paths["dirs"][d]) self.load_mirrors() self.load_settings() - # some settings require a path rebuild, like force_en-US self.build_paths() self.mkdir(self.paths["download_dir"]) self.mkdir(self.paths["tbb"]["dir"]) self.init_gnupg() - # discover the architecture and language - def discover_arch_lang(self): - # figure out the architecture - self.architecture = "x86_64" if "64" in platform.architecture()[0] else "i686" - - # figure out the language - available_languages = [ - "ar", - "ca", - "cs", - "da", - "de", - "el", - "en-US", - "es-AR", - "es-ES", - "fa", - "fr", - "ga-IE", - "he", - "hu", - "id", - "is", - "it", - "ja", - "ka", - "ko", - "lt", - "mk", - "ms", - "my", - "nb-NO", - "nl", - "pl", - "pt-BR", - "ro", - "ru", - "sv-SE", - "th", - "tr", - "vi", - "zh-CN", - "zh-TW", - ] - - # a list of manually configured language fallback overriding - language_overrides = { - "zh-HK": "zh-TW", - } - - locale.setlocale(locale.LC_MESSAGES, "") - default_locale = locale.getlocale(locale.LC_MESSAGES)[0] - if default_locale is None: - self.language = "en-US" - else: - self.language = default_locale.replace("_", "-") - if self.language in language_overrides: - self.language = language_overrides[self.language] - if self.language not in available_languages: - self.language = self.language.split("-")[0] - if self.language not in available_languages: - for l in available_languages: - if l[0:2] == self.language: - self.language = l - # if language isn't available, default to english - 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): @@ -170,11 +101,6 @@ ) old_tbb_data = "{0}/.torbrowser".format(homedir) - if hasattr(self, "settings") and self.settings["force_en-US"]: - language = "en-US" - else: - language = self.language - if tbb_version: # tarball filename if self.architecture == "x86_64": @@ -182,9 +108,7 @@ else: arch = "linux32" - tarball_filename = ( - "tor-browser-" + arch + "-" + tbb_version + "_" + language + ".tar.xz" - ) + tarball_filename = "tor-browser-" + arch + "-" + tbb_version + "_ALL.tar.xz" # tarball self.paths["tarball_url"] = ( @@ -218,7 +142,7 @@ "tor_browser_developers": os.path.join( SHARE, "tor-browser-developers.asc" ), - "wkd_tmp": os.path.join(tbb_cache, "torbrowser.gpg") + "wkd_tmp": os.path.join(tbb_cache, "torbrowser.gpg"), }, "mirrors_txt": [ os.path.join(SHARE, "mirrors.txt"), @@ -228,27 +152,19 @@ "gnupg_homedir": tbb_local + "/gnupg_homedir", "settings_file": tbb_config + "/settings.json", "settings_file_pickle": tbb_config + "/settings", - "version_check_url": "https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/en-US", + "version_check_url": "https://aus1.torproject.org/torbrowser/update_3/release/Linux_x86_64-gcc3/x/ALL", "version_check_file": tbb_cache + "/download/release.xml", "tbb": { "changelog": tbb_local + "/tbb/" + self.architecture - + "/tor-browser_" - + language - + "/Browser/TorBrowser/Docs/ChangeLog.txt", + + "/tor-browser/Browser/TorBrowser/Docs/ChangeLog.txt", "dir": tbb_local + "/tbb/" + self.architecture, - "dir_tbb": tbb_local - + "/tbb/" - + self.architecture - + "/tor-browser_" - + language, + "dir_tbb": tbb_local + "/tbb/" + self.architecture + "/tor-browser", "start": tbb_local + "/tbb/" + self.architecture - + "/tor-browser_" - + language - + "/start-tor-browser.desktop", + + "/tor-browser/start-tor-browser.desktop", }, } @@ -259,6 +175,21 @@ "wkd_tmp": tor_browser_developers_fingerprint, } + # Tor Browser 12.0 no longer has locales. If an old TBB folder exists with locals, rename it to just tor_browser + def torbrowser12_rename_old_tbb(self): + if not os.path.exists(self.paths["tbb"]["dir"]): + return + for filename in os.listdir(self.paths["tbb"]["dir"]): + abs_filename = os.path.join(self.paths["tbb"]["dir"], filename) + if filename.startswith("tor-browser_") and os.path.isdir(abs_filename): + os.rename(abs_filename, self.paths["tbb"]["dir_tbb"]) + print( + _("Renamed {0} to {1}").format( + abs_filename, self.paths["tbb"]["dir_tbb"] + ) + ) + break + # create a directory @staticmethod def mkdir(path): @@ -397,7 +328,6 @@ "download_over_tor": False, "tor_socks_address": "127.0.0.1:9050", "mirror": self.default_mirror, - "force_en-US": False, } if os.path.isfile(self.paths["settings_file"]): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/torbrowser_launcher/launcher.py new/torbrowser-launcher-0.3.6/torbrowser_launcher/launcher.py --- old/torbrowser-launcher-0.3.5/torbrowser_launcher/launcher.py 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/torbrowser_launcher/launcher.py 2022-12-14 03:19:17.000000000 +0100 @@ -72,7 +72,7 @@ self.force_redownload = False # This is the current version of Tor Browser, which should get updated with every release - self.min_version = "7.5.2" + self.min_version = "12.0" # Init launcher self.set_state(None, "", []) @@ -219,8 +219,6 @@ self.try_stable() elif self.gui == "error_try_default_mirror": self.try_default_mirror() - elif self.gui == "error_try_forcing_english": - self.try_forcing_english() elif self.gui == "error_try_tor": self.try_tor() @@ -361,13 +359,6 @@ subprocess.Popen([self.common.paths["tbl_bin"]]) self.close() - def try_forcing_english(self): - # change force english to true and relaunch TBL - self.common.settings["force_en-US"] = True - self.common.save_settings() - subprocess.Popen([self.common.paths["tbl_bin"]]) - self.close() - def try_tor(self): # set download_over_tor to true and relaunch TBL self.common.settings["download_over_tor"] = True @@ -549,6 +540,7 @@ self.common = common self.url = url self.path = path + def run(self): with open(self.path, "wb") as f: try: @@ -572,21 +564,6 @@ + _("Would you like to switch back to the default?") ).format(r.status_code, self.common.settings["mirror"]) self.download_error.emit("error_try_default_mirror", message) - - # Should we switch to English? - elif ( - self.common.language != "en-US" - and not self.common.settings["force_en-US"] - ): - message = ( - _("Download Error:") - + " {0}\n\n" - + _( - "Would you like to try the English version of Tor Browser instead?" - ) - ).format(r.status_code) - self.download_error.emit("error_try_forcing_english", message) - else: message = (_("Download Error:") + " {0}").format(r.status_code) self.download_error.emit("error", message) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/torbrowser-launcher-0.3.5/torbrowser_launcher/settings.py new/torbrowser-launcher-0.3.6/torbrowser_launcher/settings.py --- old/torbrowser-launcher-0.3.5/torbrowser_launcher/settings.py 2021-06-22 03:50:44.000000000 +0200 +++ new/torbrowser-launcher-0.3.6/torbrowser_launcher/settings.py 2022-12-14 03:19:17.000000000 +0100 @@ -54,17 +54,6 @@ else: self.tor_download_checkbox.setCheckState(QtCore.Qt.Unchecked) - # Force en-US, only display if language isn't already en-US - self.force_en_checkbox = QtWidgets.QCheckBox( - _("Force downloading English version of Tor Browser") - ) - if self.common.settings["force_en-US"]: - self.force_en_checkbox.setCheckState(QtCore.Qt.Checked) - else: - self.force_en_checkbox.setCheckState(QtCore.Qt.Unchecked) - if self.common.language == "en-US": - self.force_en_checkbox.hide() - # Tor SOCKS address tor_addr_label = QtWidgets.QLabel(_("Tor server")) self.tor_addr = QtWidgets.QLineEdit() @@ -76,7 +65,6 @@ # Settings layout settings_layout = QtWidgets.QVBoxLayout() settings_layout.addWidget(self.tor_download_checkbox) - settings_layout.addWidget(self.force_en_checkbox) settings_layout.addLayout(tor_addr_layout) # Status @@ -189,7 +177,6 @@ self.common.settings[ "download_over_tor" ] = self.tor_download_checkbox.isChecked() - self.common.settings["force_en-US"] = self.force_en_checkbox.isChecked() self.common.settings["tor_socks_address"] = self.tor_addr.text() # Figure out the selected mirror