[tor-bugs] #16551 [GetTor]: Improve Latests TBB Format to be easily parsable

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Jul 21 17:50:45 UTC 2015


#16551: Improve Latests TBB Format to be easily parsable
------------------------+---------------------
     Reporter:  naif    |      Owner:  sukhbir
         Type:  defect  |     Status:  new
     Priority:  normal  |  Milestone:
    Component:  GetTor  |    Version:
   Resolution:          |   Keywords:
Actual Points:          |  Parent ID:
       Points:          |
------------------------+---------------------
Changes (by micahlee):

 * cc: micahlee (added)


Comment:

 I agree, Tor Browser Launcher has this exact problem. At the moment it
 loads
 https://www.torproject.org/projects/torbrowser/RecommendedTBBVersions and
 then tries to parse it. There have been a few times in the past where
 RecommendedTBBVersions changed its format slightly, which entirely broken
 TBL.

 This quickly becomes a complicated issue because of all of the different
 pieces of information that end up defining a URL: version (stable or
 experimental), platform, architecture, and language.

 So the URLs to download the latest stable for Windows in English are:

 https://www.torproject.org/dist/torbrowser/4.5.3/torbrowser-install-4.5
 .3_en-US.exe
 https://www.torproject.org/dist/torbrowser/4.5.3/torbrowser-install-4.5
 .3_en-US.exe.asc

 And the URLs to download the latest experimental for 32-bit Linux in
 Spanish are:

 https://www.torproject.org/dist/torbrowser/5.0a3/tor-browser-linux32-5
 .0a3_es-ES.tar.xz
 https://www.torproject.org/dist/torbrowser/5.0a3/tor-browser-linux32-5
 .0a3_es-ES.tar.xz.asc

 Whatever the ultimate solution is, it would be good to figure out how to
 encapsulate all of this information. It could be a single JSON object,
 something like this:

 {{{
 {
   "stable": {
     "version": "4.5.3",
     "downloads": {
       "en-US": {
         "windows": {
           "binary": "https://www.torproject.org/dist/torbrowser/4.5.3
 /torbrowser-install-4.5.3_en-US.exe",
           "sig": "https://www.torproject.org/dist/torbrowser/4.5.3
 /torbrowser-install-4.5.3_en-US.exe.asc"
         },
         "macos": {
           "binary":
 "https://www.torproject.org/dist/torbrowser/4.5.3/TorBrowser-4.5.3
 -osx64_en-US.dmg",
           "sig":
 "https://www.torproject.org/dist/torbrowser/4.5.3/TorBrowser-4.5.3
 -osx64_en-US.dmg.asc"
         },
         "linux32": {
           "binary": "https://www.torproject.org/dist/torbrowser/4.5.3/tor-
 browser-linux32-4.5.3_en-US.tar.xz",
           "sig": "https://www.torproject.org/dist/torbrowser/4.5.3/tor-
 browser-linux32-4.5.3_en-US.tar.xz.asc"
         },
         "linux64": {
           "binary": "https://www.torproject.org/dist/torbrowser/4.5.3/tor-
 browser-linux64-4.5.3_en-US.tar.xz",
           "sig": "https://www.torproject.org/dist/torbrowser/4.5.3/tor-
 browser-linux64-4.5.3_en-US.tar.xz.asc"
         }
       },
       "ar": ...,
       "de": ...,
       ...
     }
   },
   "experimental": {
     "version": "5.0a3",
     "downloads": ...
   }
 }
 }}}

 Or it could be some sort of API, so these requests would return these
 responses:

 `/version/stable`:
 4.5.3

 `/version/experimental`:
 5.0a3

 `/stable/bin/linux64/en-US`:
 https://www.torproject.org/dist/torbrowser/4.5.3/tor-browser-linux64-4.5
 .3_en-US.tar.xz

 `/stable/sig/linux64/en-US`:
 https://www.torproject.org/dist/torbrowser/4.5.3/tor-browser-linux64-4.5
 .3_en-US.tar.xz.asc

 `/experimental/bin/linux64/en-US`:
 https://www.torproject.org/dist/torbrowser/5.0a3/tor-browser-linux64-5
 .0a3_en-US.tar.xz

 `/experimental/sig/linux64/en-US`:
 https://www.torproject.org/dist/torbrowser/5.0a3/tor-browser-linux64-5
 .0a3_en-US.tar.xz.asc

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/16551#comment:4>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list