[tor-bugs] #5236 [Tor bundles/installation]: Make a deb of the Torbrowser and add to repository

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Feb 7 21:28:08 UTC 2013


#5236: Make a deb of the Torbrowser and add to repository
--------------------------------------+-------------------------------------
 Reporter:  cypherpunks               |          Owner:                   
     Type:  enhancement               |         Status:  needs_information
 Priority:  normal                    |      Milestone:                   
Component:  Tor bundles/installation  |        Version:                   
 Keywords:                            |         Parent:                   
   Points:                            |   Actualpoints:                   
--------------------------------------+-------------------------------------

Comment(by micahlee):

 Replying to [comment:22 proper]:
 > gpg:
 >
 > a) Ship the gpg keys with the deb package and the packager keeps the
 keys updated? Or,
 > b) hardcode the gpg fingerprints and download it from the keyserver?
 > c) somehow magically phrase the tpo verification page

 I like a) the best. It seems simple and unlikely to break.

 > A clean solution would be:
 > #5606: "deb package with all torproject.org signing pgp keys" - but that
 requires help from tpo.
 >
 > ...or the TBB bundles get signed with the tpo archive signing keys
 instead of the individual account holders.

 https://www.torproject.org/docs/signing-keys.html.en says "Erinn Clark
 (0x63FEE659) signs the Tor Browser Bundles, Vidalia bundles, and many
 other packages."

 I think it would be fine to include Erinn's public key in the package, and
 have the downloader also download and verify the sigs (like
 https://www.torproject.org/dist/torbrowser/linux/tor-browser-gnu-linux-
 x86_64-2.3.25-2-dev-en-US.tar.gz.asc). If Erinn ever stops signing the TBB
 tarballs, we can update Tor Browser Launcher and include the new signing
 key.

 > Dependencies:
 >
 > What should the script depend on? Is curl fine? I like curl because it
 can enforce https with TLS. Is a dependency on bash ok with Debian policy?
 I'd hate caring about sh compatibility.

 I think curl is fine. I don't know about bash dependency and Debian, but I
 think it's fine to start with it and if it turns out to be an issue
 refactor bash out of it.

 The GUI stuff I've been programming depends on python-gtk2. I've never
 used zentity before, and that might be a simpler approach. I guess that's
 a design decision to make too:

 a) Do it all in python
 b) Do it all in bash and reuse much of the Whonix code
 c) Use both python and bash

 I like the idea of using python and GTK because then we can have nicer
 user interfaces. Like, a choose your language dropdown if we want it, and
 we can build more of a wizard interface for first run and upgrades.
 However, maybe zentity can do everything we need, and it might simplify
 things.

 Also, it's easier to do some logic, such as automatically determining
 which language to use, in python than bash (and that's logic that I've
 already committed to the repo).

 > Download through Tor:
 >
 > Download through Tor or clearnet? Download through Tor to allow
 obfsproxy (or similar) users to hide that they are using Tor? Download
 through Tor is a bit difficult so or so, since it would require Tor to be
 installed and another instance of Tor comes with the TBB package.
 Downloading Tor with apt-get wouldn't hide Tor anyway. I think it probable
 should download through clearnet unless someone has a better idea.

 I agree, we should download it without Tor. Maybe in the future
 downloading through Tor can be added if we come up with a good way.

 > Debian policy:
 >
 > Debian is against code duplication... So the script itself wouldn't be a
 code duplication, but the result download would result in duplicate code
 for Firefox and Tor. I personally find this policy odd and there should be
 exceptions.

 I think this project arguable doesn't count as code duplication. Or at
 least, there's a good argument that this doesn't count.

 > Progress bar:
 >
 > The script already has a zentiy progress bar, which generally works
 well. Unfortunately it stops at 50% because I didn't manage to phrase the
 curl progress bar to output usable by zenity. Can you help out here?

 I only briefly read through the script, but I should try actually running
 it and see how it looks.

 > Once this is decided I could remove the Whonix specific parts. Shouldn't
 take long.

 The other decision to make is the directory structure. Here's what I'm
 thinking:

 $HOME/.torbrowser -- all Tor Browser Launcher files live here
 $HOME/.torbrowser/version -- text file with current installed version
 $HOME/.torbrowser/download -- where tarballs get downloaded to
 $HOME/.torbrowser/tbb/ARCH/LANG -- where TBB gets extracted to

 So running, for exmaple, ~/.torbrowser/tbb/x86_64/en-US/start-tor-browser
 would launch it for me. And as long as I'm still using x86_64 and my
 language is still en-US, updates would overwrite that.

 Each time torbrowser-launcher gets run it checks it's hardcoded TBB
 version against what's in ~/.torbrowser/version to see if an update it
 required.

 Does this seem reasonable?

 And of course all the GUI stuff should be localized into all the languages
 supported by TBB as well.

 I've been spending a lot of time on this and have to get back to other
 work. If you want to clone my existing repo and make it work more with
 bash and zenity, I'll gladly merge your work back in.

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


More information about the tor-bugs mailing list