[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] r24259: {} gettor moved to git (projects/gettor)
Author: sebastian
Date: 2011-02-23 11:55:04 +0000 (Wed, 23 Feb 2011)
New Revision: 24259
Added:
projects/gettor/README-THIS-REPO-HAS-MOVED-TO-GIT.TXT
Removed:
projects/gettor/GetTor.py
projects/gettor/LICENSE
projects/gettor/MANIFEST.in
projects/gettor/MakeStat.py
projects/gettor/README
projects/gettor/README.USER-HOWTO
projects/gettor/README.locale-spec-draft
projects/gettor/TODO
projects/gettor/lib/
projects/gettor/po/
projects/gettor/sample-emails/
projects/gettor/sample-gettorrc
projects/gettor/setup.cfg
projects/gettor/setup.py
Log:
gettor moved to git
Deleted: projects/gettor/GetTor.py
===================================================================
--- projects/gettor/GetTor.py 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/GetTor.py 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,129 +0,0 @@
-#!/usr/bin/python2.5
-# -*- coding: utf-8 -*-
-
-__program__ = 'GetTor.py'
-__url__ = 'https://svn.torproject.org/svn/projects/gettor'
-__author__ = 'Jacob Appelbaum <jacob@xxxxxxxxxxxxx>, Christian Fromme <kaner@xxxxxxxxxx>'
-__copyright__ = 'Copyright (c) 2008, 2009, The Tor Project'
-__license__ = 'See LICENSE for licensing information'
-
-try:
- from future import antigravity
-except ImportError:
- antigravity = None
-
-import sys
-
-import gettor.gtlog
-import gettor.opt
-import gettor.config
-import gettor.requests
-import gettor.responses
-import gettor.utils
-
-log = gettor.gtlog.getLogger()
-
-def processFail(conf, rawMessage, reqval, failedAction, e=None):
- """This routine gets called when something went wrong with the processing
- """
- log.error("Failing to " + failedAction)
- if e is not None:
- log.error("Here is the exception I saw: %s" % sys.exc_info()[0])
- log.error("Detail: %s" %e)
- # Keep a copy of the failed email for later reference
- log.info("We'll keep a record of this mail.")
- gettor.utils.dumpMessage(conf, rawMessage)
- # Send out notification to user, if possible
- #if reqval.toField != "" or reqval.sendTo != "":
- # if not gettor.responses.sendNotification(conf, reqval.toField, reqval.sendTo):
- # log.error("Also failed to send the user a proper notification. :-/")
- # else:
- # log.info("Failure notification sent to user %s" % reqval.sendTo)
-
-def dumpInfo(reqval):
- """Dump some info to the logfile
- """
- log.info("Request From: %s To: %s Package: %s Lang: %s Split: %s Signature: %s Cmdaddr: %s" % (reqval.replyTo, reqval.toField, reqval.pack, reqval.lang, reqval.split, reqval.sign, reqval.cmdAddr))
-
-def processMail(conf):
- """All mail processing happens here. Processing goes as follows:
- - Parse request. This means: Find out everything we need to reply in
- an appropriate manner. Reply address, language, package name.
- Also try to find out if the user wants split packages and if he has
- a valid signature on his mail.
- - Send reply. Use all information gathered from the request and pass
- it on to the reply class/method to decide what to do.
- """
- rawMessage = ""
- reqval = None
- log.info("Processing mail..")
- # Retrieve request from stdin and parse it
- try:
- request = gettor.requests.requestMail(conf)
- rawMessage = request.getRawMessage()
- # reqval contains all important information we need from the request
- reqval = request.parseMail()
- dumpInfo(reqval)
- except Exception, e:
- processFail(conf, rawMessage, reqval, "process request", e)
- return False
-
- # Ok, request information aquired. Initiate reply sequence
- try:
- reply = gettor.responses.Response(conf, reqval)
- if not reply.sendReply():
- processFail(conf, rawMessage, reqval, "send reply")
- return False
- return True
- except Exception, e:
- processFail(conf, rawMessage, reqval, "send reply (got exception)", e)
- return False
-
-def processOptions(options, conf):
- """Do everything that's not part of parsing a mail. Prepare GetTor usage,
- install files, fetch packages, do some black/whitelist voodoo and so on
- """
- # Order matters!
- if options.insttrans:
- m = gettor.utils.installTranslations(conf, options.i18ndir)
- if options.fetchpackages:
- gettor.utils.fetchPackages(conf, options.mirror)
- if options.preppackages:
- gettor.utils.prepPackages(conf)
- if options.installcron:
- gettor.utils.installCron()
- if options.whitelist:
- gettor.utils.addWhitelistEntry(conf, options.whitelist)
- if options.blacklist:
- gettor.utils.addBlacklistEntry(conf, options.blacklist)
- if options.lookup:
- gettor.utils.lookupAddress(conf, options.lookup)
- if options.clearwl:
- gettor.utils.clearWhitelist(conf)
- if options.days:
- gettor.utils.clearBlacklist(conf, options.days)
- if options.cmdpass:
- gettor.utils.setCmdPassword(conf, options.cmdpass)
-
-def main():
- """Parse command line, setup config and logging
- """
- options, arguments = gettor.opt.parseOpts()
- config = gettor.config.Config(options.configfile)
- gettor.gtlog.initialize()
-
- if sys.stdin.isatty():
- # We separate this because we need a way to know how we reply to the
- # caller: Send mail or just dump to stdout/stderr.
- processOptions(options, config)
- else:
- # We've got mail
- if processMail(config):
- log.info("Processing mail finished")
- else:
- log.error("Processing mail failed")
-
- log.info("Done.")
-
-if __name__ == "__main__":
- main()
Deleted: projects/gettor/LICENSE
===================================================================
--- projects/gettor/LICENSE 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/LICENSE 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,31 +0,0 @@
-gettor is distributed under this license:
-
-Copyright (c) 2008, The Tor Project, Inc.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-
- * Neither the names of the copyright owners nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Deleted: projects/gettor/MANIFEST.in
===================================================================
--- projects/gettor/MANIFEST.in 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/MANIFEST.in 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,2 +0,0 @@
-include README TODO README.USER-HOWTO README.locale-spec-draft
-recursive-include po *
Deleted: projects/gettor/MakeStat.py
===================================================================
--- projects/gettor/MakeStat.py 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/MakeStat.py 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,130 +0,0 @@
-#!/usr/bin/python
-
-
-import sys
-import os
-import re
-import string
-
-def emptyPacks(packs):
- for k, v in packs.iteritems():
- packs[k] = 0
- return packs
-
-def makestats(filename, days):
- day = None
- pack = None
- lang = None
- packages = {"None": 0,
- "tor-browser-bundle": 0,
- "tor-im-browser-bundle": 0,
- "tor-browser-bundle_en": 0,
- "tor-im-browser-bundle_en": 0,
- "tor-browser-bundle_de": 0,
- "tor-im-browser-bundle_de": 0,
- "tor-browser-bundle_ar": 0,
- "tor-im-browser-bundle_ar": 0,
- "tor-browser-bundle_es": 0,
- "tor-im-browser-bundle_es": 0,
- "tor-browser-bundle_fa": 0,
- "tor-im-browser-bundle_fa": 0,
- "tor-browser-bundle_fr": 0,
- "tor-im-browser-bundle_fr": 0,
- "tor-browser-bundle_it": 0,
- "tor-im-browser-bundle_it": 0,
- "tor-browser-bundle_nl": 0,
- "tor-im-browser-bundle_nl": 0,
- "tor-browser-bundle_pl": 0,
- "tor-im-browser-bundle_pl": 0,
- "tor-browser-bundle_pt": 0,
- "tor-im-browser-bundle_pt": 0,
- "tor-browser-bundle_ru": 0,
- "tor-im-browser-bundle_ru": 0,
- "tor-browser-bundle_zh_CN": 0,
- "tor-im-browser-bundle_zh_CN": 0,
- "source-bundle": 0,
- "macosx-ppc-bundle": 0,
- "macosx-i386-bundle": 0}
-
- try:
- logFile = open(filename, 'r')
- except:
- print "Couldn't open logfile %s" % filename
- sys.exit(1)
- readData = logFile.read().split('\n')
- for line in readData:
- match = re.match(".*Request from.*cmdaddr None.*", line, re.DOTALL)
- if match:
- splitline = string.split(line)
- if len(splitline) > 12:
- day = splitline[0]
- pack = splitline[7]
- lang = splitline[9]
- if not re.match("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]", day):
- continue
- pack = pack.strip(',')
- lang = lang.strip(',')
- if day in days:
- packs = days[day]
- else:
- packs = emptyPacks(packages).copy()
- if pack is not None:
- if pack in packs:
- packs[pack] += 1
- days[day] = packs
- else:
- match = re.match(".*Request From.*Cmdaddr: None.*", line, re.DOTALL)
- if match:
- splitline = string.split(line)
- if len(splitline) > 12:
- day = splitline[0]
- pack = splitline[9]
- lang = splitline[11]
- if not re.match("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]", day):
- continue
- pack = pack.strip(',')
- lang = lang.strip(',')
- if day in days:
- packs = days[day]
- else:
- packs = emptyPacks(packages).copy()
- if pack is not None:
- if pack in packs:
- packs[pack] += 1
- days[day] = packs
-
-def printStatsStdout(days):
- for day in sorted(days.iterkeys()):
- packs = days[day]
- daystr = "%s -" % day
- print daystr,
- for pack in sorted(packs.iterkeys()):
- packstr = "%s:%s" % (pack, packs[pack])
- print packstr,
- print ""
-
-def printStatsGNUPlot(days):
- for day in sorted(days.iterkeys()):
- packs = days[day]
- print day,
- for pack in sorted(packs.iterkeys()):
- print packs[pack],
- print ""
-
-def main():
- days = {}
-
- if len(sys.argv) < 2:
- print >> sys.stderr, "Usage: %s LOGDIR" % sys.argv[0]
- sys.exit(1)
- for arg in sys.argv:
- if not os.path.isfile(arg):
- print >> sys.stderr, "Not a file: %s" % arg
- sys.exit(1)
- makestats(arg, days)
-
- printStatsStdout(days)
- #printStatsGNUPlot(days)
-
-if __name__ == "__main__":
- main()
Deleted: projects/gettor/README
===================================================================
--- projects/gettor/README 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/README 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,262 +0,0 @@
-OVERVIEW
---------
-GetTor is a program for serving Tor and related files over SMTP. Users interact
-with GetTor by sending it email.
-
-The following document explains how to setup GetTor for a server admin.
-
-PREREQUISITES
--------------
-
-To deploy GetTor, you'll want a machine that invokes .forward files
-for users. You'll also want to have python (>= 2.5) and rsync installed.
-
-There are some limits with smtp software for outgoing email sizes. You should
-check your software to ensure that you can send files that are as large
-as the largest files Tor distributes. For postfix, you may want to have a line
-that looks like the following in /etc/postfix/main.cf:
-
- message_size_limit = 50360000
-
-In Exim, the default message size is now 50MB, which should be sufficient. The
-value is also adaptable through the config file parameter 'message_size_limit'
-in case you need to.
-
-SETUP
------
-
-This setup descripton presumes that you have access to the latest gettor svn
-trunk somewhere in your local file system.
-
- gettor@moria:~/tmp$ svn co https://freehaven.net/svn/projects/gettor gettor
-
-After checking out the GetTor source code, you will need to install everything
-as follows:
-
- gettor@moria:~/tmp$ cd gettor/
- gettor@moria:~/tmp/gettor$ python setup.py install
-
-This will copy necessary files to ~/opt/gettor.
-
-Next, configure your ~/.gettorrc file (see "Configuration", below).
-
-After that, you will want to ensure that you have a properly configured set
-of mo files for each translation. Generate and install mo files as follows:
-
- gettor@moria:~/tmp/gettor$ cd ~/opt/gettor
- gettor@moria:~/opt/gettor$ ./GetTor.py -r
-
-You'll see something like this upon success:
-
- 2009-06-21 20:06:01,324 (6136) Installing translation files done.
-
-Once you have everything installed, you'll want to initialize the file store:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -fp
-
-You should see an rsync and finally something like:
-
- sent 1637 bytes received 415792532 bytes 9558486.64 bytes/sec
- total size is 415735925 speedup is 1.00
- 2009-01-05 16:49:29,226 (9222) Syncing Tor packages done.
- 2009-01-05 16:49:30,155 (9222) Building packages done.
-
-Now you'll install the cronjob. This clears the blacklist and updates packages
-daily:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -i
- 2009-01-05 17:34:53,911 (16646) Installing cron donee
-
-Set up a password for package forwarding commands if you wish to use that
-feature:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -s seCreTpAssworD
-
-Finally, you need to setup email forwarding to the GetTor bot like so:
-
- gettor@moria:~$ echo "|/home/gettor/opt/gettor/GetTor.py" > ~/.forward
-
-Now GetTor.py is installed, prepared and ready to serve files. Send it email!
-
-TRANSLATION FILES
------------------
-Provided there is a working locale environment, GetTor will compile and setup
-locale files for you as follows:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -r
- 2009-01-08 12:18:09,041 (19287) Installing translation files done.
-
-You can also configure the .mo files to live in another place by telling GetTor
-so in the config file, for example:
-
- localeDir = /home/gettor/gettor/po
-
-This will result in GetTor expecting the English .mo file in the directory
-
- /home/gettor/gettor/po/en/gettor.mo
-
-Also, in case your .po files for some reason live in a different directory
-than po/ (relative to GetTor.py, as provided by GetTor), you can tell this
-to GetTor as follows:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -r -d /path/to/my/pofiles/directory
-
-Note that GetTor will expect the same directory structure as provided under
-po/ in the GetTor source package, e.g. 'po/en/gettor.po',
-'po/de/gettor.po', and so on.
-
-To add a new language to GetTor, one must create a new .po file in subversion
-in the proper directory. For Korean, one would create po/ko/ and add the
-untranslated file (called gettor.po) to that directory. This file should be
-translated but partial translations are allowed. Once this file has been
-created, the GetTor program does not need to be modified.
-
-However, if a user wished to add support in responses to users, they will need
-to modiy the 'requests.py' file like so:
-
- defaultLang = "en"
- supportedLangs = { "en": "English",Â
- "ko": "Korean",Â
- "de": "Deutsch" }
-
-CONFIGURATION
--------------
-A proper GetTor configuration file is expected in the user's home directory
-and should look like this:
-
- gettor@moria:~$ cat .gettorrc
- [global]
- stateDir = /home/gettor/gettor/state/
- blStateDir = /home/gettor/gettor/bl/
- wlStateDir = /home/gettor/gettor/wl/
- distDir = /home/gettor/gettor/distdir/
- packDir = /home/gettor/gettor/packdir/
- locale = en
- logSubSystem = stdout
- logFile = /home/gettor/gettor/logs/logfile
- localeDir = /home/gettor/gettor/po/
- cmdPassFile = /home/gettor/gettor/pass
- dumpFile = /home/gettor/gettor/failedmails
-
-You can leave any of these lines out, and it will choose a suitable
-default.
-
-Here is what each of them is used for individually:
-
-blStateDir: Blacklisted (hashed) email addresses go here
-wlStateDir: Whitelisted (hashed) email addresses go here
-distDir: Pristine Tor packages as downloaded by rsync will be found here
-packDir: Processed Tor packages ready to be handed out to the user will
- be found here
-srcEmail: The email containing the Tor package will use this as 'From:'
-locale: Choose your default mail locale
-logFile: If 'file' logging is chosen, log to this file
-logSubSystem: This has to be one of the following strings:
- 'nothing': Nothing is logged anywhere (Recommended)
- 'stdout': Log to stdout
- 'syslog': Log messages will be written to syslog
- 'file': Log messages will be written to a file (Not that
- this needs the 'logFile' option in the config file
- also set to something useful
-localeDir: This is where the 'en/LC_MESSAGES/gettor.mo' or
- 'whateverlang/LC_MESSAGES/gettor.mo' should go
-cmdPassFile: The file containing the hashed command password
-dumpFile: All failed mails are recorded here
-
-WHAT'S DKIM / WHY DKIM?
------------------------
-
-People who send mail to gettor need to either use a mail provider that
-signs outgoing mail with DKIM, or have their email address or domain
-added to the whitelist.
-
-"DomainKeys Identified Mail", aka DKIM, is a mechanism that lets the mail
-provider prove that the mail is really coming from the domain and sender
-it claims to be from.
-
-Currently GMail and Yahoo both support DKIM, along with other more
-esoteric domains like paypal, AOL, earthlink, linkedin, etc. You can
-check if your mail provider uses DKIM by examining the headers of emails
-you send. If there's a "DomainKey-Signature:" header, then you're in
-good shape.
-
-If we didn't check the DKIM signature, people could abuse gettor into
-mailbombing innocent email addresses -- one short email resulting in a
-15MB attachment sent to an address of their choice is quite an attack
-multiplier.
-
-There are a few other alternative options (for example, Microsoft uses its
-own proprietary design called 'Sender ID'), but since GMail is already
-very common for users in blocked countries, we figured DKIM was a good
-starting point.
-
-And last, be aware that the set of domains that technically support
-DKIM is probably not exactly the same set that we should recommend for
-our users, due to other properties of each mail provider like their
-privacy policies.
-
-VALIDATION OF REQUESTED FILES
------------------------------
-
-When a user submits a successful request, GetTor will respond with an email
-that has one attachment. This attachment is a zip file with a .z file
-extension. The compressed file currently consists of two files: the requested
-tool and a gpg signature from the packager of the respective file.
-
-FILE SIZE ISSUES
-----------------
-
-Some email providers may not be happy with the files GetTor sends.
-Gmail provides documentation of their incoming and outgoing file sizes. It is
-currently 20MB (though we have sent around 21MB without issue):
-
- http://mail.google.com/support/bin/answer.py?hl=en&answer=8770
-
-Other providers are not as transparent and this may cause failures.
-
-SPAM / ABUSE PREVENTION
-------------------------------
-
-GetTor does some spam/abuse prevention. This is primarily because we don't want
-to hammer innocent inboxes with huge amounts of tor packages.
-
-First of all, there is a DKIM checker (see "WHAT'S DKIM / WHY DKIM" above) that
-prevents GetTor from answering useless spam emails. On top of that, there are
-some hard-coded checks being performed on the sender address. Only mails coming
-from yahoo.com.cn, yahoo.com and gmail.com are allowed. However, DKIM checking
-and hard-coded domain checks are currently disabled in GetTor. Mails from all
-addresses are being passed to GetTor processing.
-
-On top of that, there is a blacklisting mechanism. It works as follows: Each
-unique email address is allowed to mail GetTor the same type of mail once each
-7 days. Mail types are sendDelayAlert, sendPackage, sendPackageHelp,
-sendSplitPackage. Blacklists are stored in the form of hashed email files under
-directories. In reality, that looks as follows:
-
- gettor@moria:~/opt/gettor$ ls -d /home/gettor/gettor/bl/*
- /home/gettor/gettor/bl/general
- /home/gettor/gettor/bl/sendPackage
- /home/gettor/gettor/bl/sendSplitPackage
- /home/gettor/gettor/bl/sendDelayAlert
- /home/gettor/gettor/bl/sendPackageHelp
-
- gettor@moria:~/opt/gettor$ ls /home/gettor/gettor/bl/sendDelayAlert \
- | head -n 2
- 0154d8584c0afa6290e21098e7ab4cc635b7d50a
- 02a33e16feece8671f1274de62de32068a67cf20
-
-In addition to this automatic whitelisting, there is the possibility to add
-blacklist entries by hand as follows:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -b someone@xxxxxxxx
-
-Email addresses that are added this way, go to the general/ directory in the
-blacklist directory.
-
-Besides the blacklisting mechanism, there is a whitelisting mechanism. It works
-analogous to the manual blacklisting mechanism:
-
- gettor@moria:~/opt/gettor$ ./GetTor.py -w someone@xxxxxxxx
-
-Whitelisting wins over blacklisting. If a user if blacklisted for X, but also
-whitelisted, he will be allowed to do X.
Added: projects/gettor/README-THIS-REPO-HAS-MOVED-TO-GIT.TXT
===================================================================
--- projects/gettor/README-THIS-REPO-HAS-MOVED-TO-GIT.TXT (rev 0)
+++ projects/gettor/README-THIS-REPO-HAS-MOVED-TO-GIT.TXT 2011-02-23 11:55:04 UTC (rev 24259)
@@ -0,0 +1,5 @@
+This repo is now in git. You may view it either via the web:
+https://gitweb.torproject.org/gettor
+
+Or clone it:
+git://git.torproject.org/gettor.git
Deleted: projects/gettor/README.USER-HOWTO
===================================================================
--- projects/gettor/README.USER-HOWTO 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/README.USER-HOWTO 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,90 +0,0 @@
-
-This document explains how a user may request Tor or Tor-related
-software via email with the GetTor program.
-
-FINDING GETTOR
---------------
-
-It is assumed that a user has a method of finding a valid GetTor email robot.
-Currently the best known GetTor email is gettor @ torproject.org. This should
-be the most current stable GetTor robot as it is operated by the Tor Project.
-
-
-REQUIREMENTS FOR USING GETTOR
------------------------------
-
-Users communicate with the GetTor robot by sending messages via email. The
-messages are currently English keywords. The user must use an email provider
-that signs their email with DKIM. A user will be alerted if their email
-provider is unsupported.
-
-USING GETTOR
-------------
-
-Currently, users have a limited set of options. It is best to send an email
-with a message body (the subject line can be blank) that consists of only the
-word 'help' to receive instructions. This will send the most current set of
-choices. An example reply to a request for help follows:
-
- Hello, This is the "gettor" robot.
-
- I am sorry, but your request was not understood. Please select one of the
- following package names:
-
- panther-bundle
- source-bundle
- windows-bundle
- tiger-bundle
- tor-browser-bundle
- tor-im-browser-bundle
-
- Please send me another email. It only needs a single package name anywhere
- in the body of your email.
-
-For example, it is possible to fetch the most current Windows bundle. A user may
-send a request with only the word 'windows-bundle' in the body of the email. An
-example reply would look something like the following:
-
- Hello! This is the "gettor" robot.
-
- Here's your requested software as a zip file. Please unzip the
- package and verify the signature.
-
- Hint: If your computer has GnuPG installed, use the gpg
- commandline tool as follows after unpacking the zip file:
-
- gpg --verify <packagename>.asc <packagename>
-
- The output should look somewhat like this:
-
- gpg: Good signature from "Roger Dingledine <arma@xxxxxxx>"
-
- If you're not familiar with commandline tools, try looking for
- a graphical user interface for GnuPG on this website:
-
- http://www.gnupg.org/related_software/frontends.html
-
- Have fun.
-
-The email should also include an attachment with the name 'windows-bundle.z'
-that can be downloaded by the user. The user must now unpack the zip file and
-if they wish, they may verify that the file is from the Tor Project.
-
-UNPACKING AND VERIFYING THE REQUESTED FILES
--------------------------------------------
-
-A user should have software for decompressing .zip files. It will contain at
-least two files, the requested bundle and its digital signature. Before a user
-installs the bundle, they should verify the signature.
-
-Users should follow the most current instructions for signature verification
-as detailed by the Tor Project website:
- https://www.torproject.org/verifying-signatures.html
-
-INSTALLING THE REQUESTED FILES
-------------------------------
-
-After verifying that the file is valid, a user should simply run the program.
-If a user requested the source code to Tor, we assume that they're able to
-follow the build instructions contained within the source itself.
-
Deleted: projects/gettor/README.locale-spec-draft
===================================================================
--- projects/gettor/README.locale-spec-draft 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/README.locale-spec-draft 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,61 +0,0 @@
-OVERVIEW
---------
-
-This document explains how GetTor handles locale parsing for both the operator
-and the end of user of GetTor. This allows non-English speaking users to
-operate GetTor in their language and to serve users in all other supported
-languages. It is currently a draft and will be reformatted, rewritten and
-changed until further notice.
-
-LOCALES FOR END USERS
----------------------
-
-Users should be able to send an indicator that they wish to have a localized
-response. All responses will be localized and localized binaries will be sent.
-
-SUPPORTED LOCALES
------------------
-
-All supported locales will be advertised by gettor in all emails.
-
-LOW TECH LOCALE PARSING
------------------------
-
-If no locale is specified, GetTor will default to English in the locale 'en-US'
-for all output.
-
-If a user wishes, they may set the locale for all responses. The locale must be
-passed by the end user as a single line. The start of the line must begin with
-'Lang: ' and be followed by the desired locale. The locale must be at the end
-of the line. An example follows on the following line:
-
- Lang: de
-
-The first valid Locale line found in the message will designate the response
-locale.
-
-AUTOMATED LOCALE PARSING
-------------------------
-
-If possible and supported by the server, GetTor will attempt to automatically
-parse the desired locale by using plus addressing. The user should append the
-desired locale to the email address of the GetTor robot. An example for setting
-all responses into German (Locale: de) follows below:
-
- gettor+de@xxxxxxxxxxxxxx
-
-This will allow the user to interact without any knowledge of locales.
-
-GENERATING .po/.pot FILES
--------------------------
-
-In the top level directory of the gettor source, run the following command:
-
- xgettext lib/gettor/constants.py -d gettor -o po/templates/gettor.pot
-
-Commit your pot file. Then log into the pootle server, commit any
-outstanding changes in ~/gettor/, and do an svn update. Then log into the
-pootle web interface, choose gettor, choose 'admin', click each check box
-(ugh), click 'update languages' at the bottom. Then log into the pootle
-server and do an svn commit of all the new po files.
-
Deleted: projects/gettor/TODO
===================================================================
--- projects/gettor/TODO 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/TODO 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,26 +0,0 @@
-These are planned changes to the gettor system.
-
-- Split (at least) tiger bundle into several smaller archives to avoid ~20MB
-- React in some way if the user requested a split download but no split
- downloads are available for that specific package (maybe send out the non-
- split version of the package?)
-- Update https://www.torproject.org/gettor/
-- Write instructions on the website on how to use GetTor. Put that site into
- pootle for translation so for example chinese and iranian users have a
- reference for help
-- Package names that are sent out to the user are currently hard-coded. Return
- to a more dynamic approach, also: Add a nice little note about the size of
- the files users may request
-- Remove 'localhost:25' to send mail and use '/usr/bin/sendmail' instead
- (suggested by weasel)
-- Implement test (-t switch) functionality
-- Add torbutton (Mike, please sign torbutton and populate a proper .asc)
-- Add GetTor to GetTor and it will be able to distribute itself
-- Merge checkInternalEarlyBlacklist() in requests.py with the real blacklist
- mechanism of GetTor
- Related:
- - Make blacklists learn wildcards: Something like "*@torproject.org" as a
- reply-to address should really be blacklisted, for instance.
-- Come up with something more elegant than torSpecialPackageExpansion() in
- requests.py. Hardcoding package names in other places than packages.py is
- inviting bugs.
Deleted: projects/gettor/sample-gettorrc
===================================================================
--- projects/gettor/sample-gettorrc 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/sample-gettorrc 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,16 +0,0 @@
-# Put this into the home directory of the user who runs gettor.py:
-# ~/.gettorrc
-#
-[global]
-stateDir = /tmp/gettor
-blstatedir = /tmp/gettor/bl/
-wlstatedir = /tmp/gettor/wl/
-distdir = /tmp/gettor/distdir/
-packdir = /tmp/gettor/packdir/
-locale = en
-delayalert = True
-logSubSystem = stdout
-logFile = /tmp/gettor/logfile
-localDir = /tmp/gettor/po/
-cmdPassFile = /tmp/gettor/pass
-dumpFile = /tmp/gettor/dumpfile
Deleted: projects/gettor/setup.cfg
===================================================================
--- projects/gettor/setup.cfg 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/setup.cfg 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,4 +0,0 @@
-[install]
-install-purelib=$HOME/opt/gettor
-install-scripts=$HOME/opt/gettor
-install-data=$HOME/opt/gettor
Deleted: projects/gettor/setup.py
===================================================================
--- projects/gettor/setup.py 2011-02-23 00:21:44 UTC (rev 24258)
+++ projects/gettor/setup.py 2011-02-23 11:55:04 UTC (rev 24259)
@@ -1,36 +0,0 @@
-#!/usr/bin/python2.5
-# (c) 2009 The Tor project
-# GetTor installer & packer
-
-import glob
-import os
-import sys
-
-from distutils.core import setup
-
-TRANSLATION_DIR='po'
-data_files = dict()
-for filename in os.listdir(TRANSLATION_DIR):
- if filename.endswith('.svn'):
- continue
- dir = os.path.join(TRANSLATION_DIR, filename)
- if dir.endswith('templates'):
- file = "gettor.pot"
- else:
- file = "gettor.po"
- pofile = os.path.join(dir, file)
- data_files[dir] = [pofile]
-
-setup(name='GetTor',
- version='0.1',
- description='GetTor enables users to obtain Tor via email',
- author='Jacob Appelbaum, Christian Fromme',
- author_email='jacob at appelbaum dot net, kaner at strace dot org',
- url='https://www.torproject.org/gettor/',
- package_dir={'': 'lib'},
- packages=['gettor'],
- data_files = data_files.items(),
- scripts = ["GetTor.py", "MakeStat.py"],
- py_modules=['GetTor'],
- long_description = """Really long text here."""
- )
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits