change TBB directory structure to be more like Firefox's
Reorganizing the internal directory structure of TBB to mirror Firefox's layout as closely as possible will simplify the Firefox updater patches (#4234 (moved)) and reduce risk for the updater. The new structure will be like Firefox's with the Tor-related subdirectories (Data, Doc, Tor) added under a new subdirectory named TorBrowser.
On Windows and Linux, the installable TBB packages will include a "container" directory named Browser at the top level so we do not expose so many files to end users.
On Linux, we will move the launcher script (start-tor-browser) under the Browser directory and at the top level we will include a symbolic link to it.
On Windows, we will eliminate the Start Tor Browser.exe program and instead modify the NSIS-based installer so it creates a similarly named shortcut at the top level.
On Mac OS, the .app bundle mechanism takes care of hiding the underlying structure.
New Linux structure:
Tor Browser/
start-tor-browser // symlink to Browser/start-tor-browser
Browser/
firefox
start-tor-browser // launcher script
TorBrowser/
Data/
Docs/
Tor/
New Windows structure:
Tor Browser/
Start Tor Browser.lnk // shortcut to Browser\firefox.exe
Browser/
firefox.exe
TorBrowser/
Data/
Docs/
Tor/
New Mac OS structure:
TorBrowser.app/
Contents/
MacOS/
firefox
TorBrowser/
Data/
Docs/
Tor/
Firefox changes needed: update the #9173 (closed) patch to account for the new location of the profile directory and create a new patch that forces -no-remote.
Tor Launcher changes needed: prepend the directory that contains tor.exe to the PATH environment variable (currently done by Start Tor Launcher.exe aka RelativeLink.c) and adjust getTorFile() to account for the new structure.
The gitian descriptors within builders/tor-browser-bundle.git will need to be modified to construct the packages using the new structure.
torbrowser.nsi will need to be modified to create a shortcut.
The Linux launcher script (RelativeLink.sh/start-tor-browser) will need minor changes to account for the new directory structure.