Erinn Clark commited on 2010-04-06 01:39:42
Zeige 1 geänderte Dateien mit 38 Einfügungen und 40 Löschungen.
| ... | ... |
@@ -615,7 +615,7 @@ and <a href="https://svn.torproject.org/svn/weather/trunk/TODO">TODO</a>. |
| 615 | 615 |
</li> |
| 616 | 616 |
|
| 617 | 617 |
<li> |
| 618 |
-<b>Better Debian/Ubuntu Packaging for Tor+Vidalia</b> |
|
| 618 |
+<b>Improvements for Tor+Vidalia interaction on Linux/Unix platforms</b> |
|
| 619 | 619 |
<br /> |
| 620 | 620 |
Priority: <i>Medium</i> |
| 621 | 621 |
<br /> |
| ... | ... |
@@ -625,45 +625,43 @@ Skill Level: <i>Medium</i> |
| 625 | 625 |
<br /> |
| 626 | 626 |
Likely Mentors: <i>Erinn, Peter</i> |
| 627 | 627 |
<br /> |
| 628 |
-Vidalia currently doesn't play nicely on Debian and Ubuntu with the |
|
| 629 |
-default Tor packages. The current Tor packages automatically start Tor |
|
| 630 |
-as a daemon running as the debian-tor user and (sensibly) do not have a |
|
| 631 |
-<a href="<gitblob>doc/spec/control-spec.txt">ControlPort</a> defined |
|
| 632 |
-in the default torrc. Consequently, Vidalia will try |
|
| 633 |
-to start its own Tor process since it could not connect to the existing |
|
| 634 |
-Tor, and Vidalia's Tor process will then exit with an error message |
|
| 635 |
-the user likely doesn't understand since Tor cannot bind its listening |
|
| 636 |
-ports — they're already in use by the original Tor daemon. |
|
| 637 |
-<br /> |
|
| 638 |
-The current solution involves either telling the user to stop the |
|
| 639 |
-existing Tor daemon and let Vidalia start its own Tor process, or |
|
| 640 |
-explaining to the user how to set a control port and password in their |
|
| 641 |
-torrc. A better solution on Debian would be to use Tor's ControlSocket, |
|
| 642 |
-which allows Vidalia to talk to Tor via a Unix domain socket, and could |
|
| 643 |
-possibly be enabled by default in Tor's Debian packages. Vidalia can |
|
| 644 |
-then authenticate to Tor using filesystem-based (cookie) authentication |
|
| 645 |
-if the user running Vidalia is also in the debian-tor group. |
|
| 646 |
-<br /> |
|
| 647 |
-This project will first involve adding support for Tor's ControlSocket |
|
| 648 |
-to Vidalia. The student will then develop and test Debian and Ubuntu |
|
| 649 |
-packages for Vidalia that conform to Debian's packaging standards and |
|
| 650 |
-make sure they work well with the existing Tor packages. We can also |
|
| 651 |
-set up an apt repository to host the new Vidalia packages. |
|
| 652 |
-<br /> |
|
| 653 |
-The next challenge would be to find an intuitive usable way for Vidalia |
|
| 654 |
-to be able to change Tor's configuration (torrc) even though it is |
|
| 655 |
-located in <code>/etc/tor/torrc</code> and thus immutable. The best |
|
| 656 |
-idea we've come up with so far is to feed Tor a new configuration via |
|
| 657 |
-the ControlSocket when Vidalia starts, but that's bad because Tor starts |
|
| 658 |
-each boot with a different configuration than the user wants. The second |
|
| 659 |
-best idea |
|
| 660 |
-we've come up with is for Vidalia to write out a temporary torrc file |
|
| 661 |
-and ask the user to manually move it to <code>/etc/tor/torrc</code>, |
|
| 662 |
-but that's bad because users shouldn't have to mess with files directly. |
|
| 663 |
-<br /> |
|
| 664 |
-A person undertaking this project should have prior knowledge of |
|
| 665 |
-Debian package management and some C++ development experience. Previous |
|
| 666 |
-experience with Qt is helpful, but not required. |
|
| 628 |
+Vidalia currently doesn't play nicely with Tor on Linux and Unix platforms. |
|
| 629 |
+Currently, on Debian and Ubuntu, there is a configuration mechanism which |
|
| 630 |
+allows Vidalia to override Tor's ability to start on boot (by sourcing |
|
| 631 |
+<code>/etc/default/tor.vidalia</code> which sets <code>RUN_DAEMON=no</code> at the user's |
|
| 632 |
+request), but full implementation of <a href="<gitblob>doc/spec/control-spec.txt">ControlPort</a> |
|
| 633 |
+communication is still required. |
|
| 634 |
+<br /> |
|
| 635 |
+A better solution on Linux and Unix platforms would be to use Tor's |
|
| 636 |
+ControlSocket, which allows Vidalia to talk to Tor via a Unix domain socket, |
|
| 637 |
+and could possibly be enabled by default in Tor's distribution packages. |
|
| 638 |
+Vidalia can then authenticate to Tor using filesystem-based (cookie) |
|
| 639 |
+authentication if the user running Vidalia is also in the distribution-specific |
|
| 640 |
+tor group. |
|
| 641 |
+<br /> |
|
| 642 |
+This project will first involve adding support for Tor's ControlSocket to |
|
| 643 |
+Vidalia. The student will then develop and test this support on various |
|
| 644 |
+distributions to make sure it behaves in a predictable and consistent manner on |
|
| 645 |
+all of them. |
|
| 646 |
+<br /> |
|
| 647 |
+The next challenge would be to find an intuitive and usable way for Vidalia to be |
|
| 648 |
+able to change Tor's configuration (torrc) even though it is located in |
|
| 649 |
+<code>/etc/tor/torrc</code> and thus immutable. In Debian and Ubuntu we handle |
|
| 650 |
+this with the aforementioned <code>/etc/default/tor.vidalia</code> but this |
|
| 651 |
+functionality could (or should) be less distribution-specific. |
|
| 652 |
+<br /> |
|
| 653 |
+The best idea we've come up with so far is to feed Tor a new configuration via |
|
| 654 |
+the ControlSocket when Vidalia starts, but that's bad because if the user is not |
|
| 655 |
+using the latest Debian/Ubuntu packages, they may not have disabled Tor's |
|
| 656 |
+ability to run on boot and will end up with a configuration that is different |
|
| 657 |
+from what they want. The second best idea we've come up with is for Vidalia to |
|
| 658 |
+write out a temporary torrc file and ask the user to manually move it to |
|
| 659 |
+<code>/etc/tor/torrc</code>, but that's bad because users shouldn't have to |
|
| 660 |
+mess with files directly. |
|
| 661 |
+<br /> |
|
| 662 |
+A person undertaking this project should have prior knowledge of various Linux |
|
| 663 |
+distributions and their packaging mechanisms as well as some C++ development |
|
| 664 |
+experience. Previous experience with Qt is helpful, but not required. |
|
| 667 | 665 |
</li> |
| 668 | 666 |
|
| 669 | 667 |
<!--<li> |
| 670 | 668 |