aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-04-28 11:34:53 -0400
committerNick Mathewson <nickm@torproject.org>2014-04-28 11:34:53 -0400
commit9230bc7c65cec68c66fa9c75751d6c6bd600e9fc (patch)
treeb9c2fe09bca52107a1595be0099bbc580dd39b19 /contrib
parent78b431d3e30def3641f25707197c55a1c7200269 (diff)
downloadtor-9230bc7c65cec68c66fa9c75751d6c6bd600e9fc.tar
tor-9230bc7c65cec68c66fa9c75751d6c6bd600e9fc.tar.gz
Clean the contrib directory with torch and machete.
We've accumulated a lot of cruft in this directory over the years: so much, that it passed the point of being so disorganized that we no longer browsed through it to see how bad it had gotten. This patch (based on changes by rl1987) tries to remove the most useless items, and split the others into reasonable directories. It creates a new scripts/ directory for maint and test scripts. This patch was generated with the script below. No other changes are made in this patch. ############# # new directories mkdir -p contrib/test-tools mkdir -p contrib/or-tools mkdir -p contrib/dirauth-tools mkdir -p contrib/operator-tools mkdir -p contrib/client-tools mkdir -p contrib/test-tools mkdir -p contrib/dist mkdir -p contrib/dist/suse mkdir -p contrib/win32build mkdir -p scripts/maint mkdir -p scripts/test ############ # Deleted -- nobody who wants this is going to be looking for it here any # longer. Also, nobody wants it. git rm contrib/auto-naming/README # Deleted: We no longer do polipo. git rm contrib/polipo/Makefile.mingw git rm contrib/polipo/README git rm contrib/polipo/polipo-mingw.nsi # We haven't even tried to run this for ages. It is a relic of a bygone era git rm contrib/mdd.py # contrib/dir-tools/directory-archive/ # Tools for running a directory archive. No longer used - deleting them. git rm contrib/directory-archive/crontab.sample git rm contrib/directory-archive/fetch-all git rm contrib/directory-archive/fetch-all-v3 git rm contrib/directory-archive/tar-them-up git rm contrib/directory-archive/fetch-all-functions git rm contrib/directory-archive/sort-into-month-folder # This appears to be related to very old windows packaging stuff. git rm contrib/bundle.nsi git rm contrib/package_nsis-weasel.sh git rm contrib/package_nsis.sh git rm contrib/netinst.nsi git rm contrib/torinst32.ico git rm contrib/xenobite.ico # This should not be needed for cross-compilation any more, should it? git rm contrib/cross.sh # I don't think anyone ever used this. git rm contrib/make-signature.sh # These are attempts to send tor controller commands from the command-line. # They don't support modern authentication. git rm contrib/tor-ctrl.sh # this is for fetching about a tor server from a dirauth. But it # doesn't authenticate the dirauth: yuck. git rm contrib/sd # wow, such unused, very perl4. git rm contrib/tor-stress ####### contrib/dirauth-tools/ # Tools for running a directory authority git mv contrib/add-tor contrib/dirauth-tools/ git mv contrib/nagios-check-tor-authority-cert contrib/dirauth-tools/ ####### # contrib/or-tools/ # Tools for examining relays git mv contrib/check-tor contrib/or-tools/check-tor git mv contrib/checksocks.pl contrib/or-tools/checksocks.pl git mv contrib/exitlist contrib/or-tools/exitlist ####### # contrib/operator-tools # Tools for running a relay. git mv contrib/linux-tor-prio.sh contrib/operator-tools/linux-tor-prio.sh git mv contrib/tor-exit-notice.html contrib/operator-tools/tor-exit-notice.html git mv contrib/tor.logrotate.in contrib/operator-tools/ ###### # contrib/dist git mv contrib/rc.subr contrib/dist/ git mv contrib/tor.sh.in contrib/dist/ git mv contrib/torctl.in contrib/dist/ git mv contrib/suse/* contrib/dist/suse/ ###### # client-tools git mv contrib/torify contrib/client-tools/torify git mv contrib/tor-resolve.py contrib/client-tools/ ###### # win32build git mv contrib/package_nsis-mingw.sh contrib/win32build/ git mv contrib/tor.nsi.in contrib/win32build/ # Erinn didn't ask for this... git mv contrib/tor-mingw.nsi.in contrib/win32build/ git mv contrib/tor.ico contrib/win32build/ ###### # scripts/test git mv contrib/cov-blame scripts/test/cov-blame git mv contrib/cov-diff scripts/test/cov-diff git mv contrib/coverage scripts/test/coverage git mv contrib/scan-build.sh scripts/test/ ######## scripts/maint # Maintainance scripts # # These are scripts for developers to use when hacking on Tor. They mostly # look at the Tor source in one way or another. git mv contrib/findMergedChanges.pl scripts/maint/findMergedChanges.pl git mv contrib/checkOptionDocs.pl scripts/maint/checkOptionDocs.pl git mv contrib/checkSpace.pl scripts/maint/checkSpace.pl git mv contrib/redox.py scripts/maint/redox.py git mv contrib/updateVersions.pl scripts/maint/updateVersions.pl git mv contrib/checkLogs.pl scripts/maint/checkLogs.pl git mv contrib/format_changelog.py scripts/maint/
Diffstat (limited to 'contrib')
-rw-r--r--contrib/auto-naming/README6
-rw-r--r--contrib/bundle.nsi67
-rwxr-xr-xcontrib/checkLogs.pl51
-rwxr-xr-xcontrib/checkOptionDocs.pl70
-rwxr-xr-xcontrib/checkSpace.pl138
-rwxr-xr-xcontrib/client-tools/tor-resolve.py (renamed from contrib/tor-resolve.py)0
-rwxr-xr-xcontrib/client-tools/torify (renamed from contrib/torify)0
-rwxr-xr-xcontrib/cov-blame48
-rwxr-xr-xcontrib/cov-diff17
-rwxr-xr-xcontrib/coverage46
-rwxr-xr-xcontrib/cross.sh195
-rwxr-xr-xcontrib/dirauth-tools/add-tor (renamed from contrib/add-tor)0
-rwxr-xr-xcontrib/dirauth-tools/nagios-check-tor-authority-cert (renamed from contrib/nagios-check-tor-authority-cert)0
-rw-r--r--contrib/directory-archive/crontab.sample3
-rwxr-xr-xcontrib/directory-archive/fetch-all77
-rw-r--r--contrib/directory-archive/fetch-all-functions82
-rwxr-xr-xcontrib/directory-archive/fetch-all-v3111
-rwxr-xr-xcontrib/directory-archive/sort-into-month-folder74
-rwxr-xr-xcontrib/directory-archive/tar-them-up127
-rw-r--r--contrib/dist/rc.subr (renamed from contrib/rc.subr)0
-rw-r--r--contrib/dist/suse/include.am (renamed from contrib/suse/include.am)0
-rw-r--r--contrib/dist/suse/tor.sh.in (renamed from contrib/suse/tor.sh.in)0
-rw-r--r--contrib/dist/tor.sh.in (renamed from contrib/tor.sh.in)0
-rw-r--r--contrib/dist/torctl.in (renamed from contrib/torctl.in)0
-rwxr-xr-xcontrib/findMergedChanges.pl73
-rwxr-xr-xcontrib/format_changelog.py162
-rwxr-xr-xcontrib/make-signature.sh79
-rwxr-xr-xcontrib/mdd.py169
-rw-r--r--contrib/netinst.nsi74
-rw-r--r--contrib/operator-tools/linux-tor-prio.sh (renamed from contrib/linux-tor-prio.sh)0
-rw-r--r--contrib/operator-tools/tor-exit-notice.html (renamed from contrib/tor-exit-notice.html)0
-rw-r--r--contrib/operator-tools/tor.logrotate.in (renamed from contrib/tor.logrotate.in)0
-rwxr-xr-xcontrib/or-tools/check-tor (renamed from contrib/check-tor)0
-rwxr-xr-xcontrib/or-tools/checksocks.pl (renamed from contrib/checksocks.pl)0
-rwxr-xr-xcontrib/or-tools/exitlist (renamed from contrib/exitlist)0
-rwxr-xr-xcontrib/package_nsis-weasel.sh90
-rw-r--r--contrib/package_nsis.sh57
-rw-r--r--contrib/polipo/Makefile.mingw100
-rw-r--r--contrib/polipo/README47
-rw-r--r--contrib/polipo/polipo-mingw.nsi172
-rwxr-xr-xcontrib/redox.py228
-rw-r--r--contrib/scan-build.sh49
-rwxr-xr-xcontrib/sd84
-rw-r--r--contrib/tor-ctrl.sh212
-rwxr-xr-xcontrib/tor-stress27
-rw-r--r--contrib/torinst32.icobin4286 -> 0 bytes
-rwxr-xr-xcontrib/updateVersions.pl59
-rw-r--r--contrib/win32build/package_nsis-mingw.sh (renamed from contrib/package_nsis-mingw.sh)0
-rw-r--r--contrib/win32build/tor-mingw.nsi.in (renamed from contrib/tor-mingw.nsi.in)0
-rw-r--r--contrib/win32build/tor.ico (renamed from contrib/tor.ico)bin82726 -> 82726 bytes
-rw-r--r--contrib/win32build/tor.nsi.in (renamed from contrib/tor.nsi.in)0
-rw-r--r--contrib/xenobite.icobin1150 -> 0 bytes
52 files changed, 0 insertions, 2794 deletions
diff --git a/contrib/auto-naming/README b/contrib/auto-naming/README
deleted file mode 100644
index e2f9ff8c2..000000000
--- a/contrib/auto-naming/README
+++ /dev/null
@@ -1,6 +0,0 @@
-Tor directory authorities may maintain a binding of server identities
-(their long term identity key) and nicknames.
-
-The auto-naming scripts have been moved to svn in
-projects/tor-naming/auto-naming/trunk/
-
diff --git a/contrib/bundle.nsi b/contrib/bundle.nsi
deleted file mode 100644
index 55f6b5fa3..000000000
--- a/contrib/bundle.nsi
+++ /dev/null
@@ -1,67 +0,0 @@
-!include "MUI.nsh"
-!include "LogicLib.nsh"
-!include "FileFunc.nsh"
-
-!define VERSION "0.2.1.13"
-!define INSTALLER "TorBundle.exe"
-!define WEBSITE "https://www.torproject.org/"
-!define LICENSE "LICENSE"
-
-SetCompressor /SOLID BZIP2
-RequestExecutionLevel user
-OutFile ${INSTALLER}
-InstallDir "$LOCALAPPDATA\TorInstPkgs"
-SetOverWrite on
-Name "Tor ${VERSION} Bundle"
-Caption "Tor ${VERSION} Bundle Setup"
-BrandingText "Tor Bundle Installer"
-CRCCheck on
-XPStyle on
-ShowInstDetails hide
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Tor"
-VIAddVersionKey "Comments" "${WEBSITE}"
-VIAddVersionKey "LegalTrademarks" "Three line BSD"
-VIAddVersionKey "LegalCopyright" "©2004-2011, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
-VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_ICON "torinst32.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_LANGUAGE "English"
-
-Section "Tor" Tor
- SectionIn RO
- SetOutPath $INSTDIR
- Call ExtractPackages
- Call RunInstallers
- Call LaunchVidalia
-SectionEnd
-
-Function ExtractPackages
- File "license.msi"
- File "tor.msi"
- File "torbutton.msi"
- File "thandy.msi"
- File "polipo.msi"
- File "vidalia.msi"
- File "tbcheck.bat"
-FunctionEnd
-
-Function RunInstallers
- ExecWait 'msiexec /i "$INSTDIR\license.msi" /qn'
- ExecWait 'msiexec /i "$INSTDIR\tor.msi" NOSC=1 /qn'
- ExecWait 'msiexec /i "$INSTDIR\thandy.msi" NOSC=1 /qn'
- ExecWait 'msiexec /i "$INSTDIR\polipo.msi" NOSC=1 /qn'
- ExecWait 'msiexec /i "$INSTDIR\torbutton.msi" /qn'
- ExecWait 'msiexec /i "$INSTDIR\vidalia.msi" /qn'
- ExpandEnvStrings $0 %COMSPEC%
- Exec '"$0" /C "$INSTDIR\tbcheck.bat"'
-FunctionEnd
-
-Function LaunchVidalia
- SetOutPath "$LOCALAPPDATA\Programs\Vidalia"
- Exec 'vidalia.exe -loglevel info -logfile log.txt'
-FunctionEnd
-
diff --git a/contrib/checkLogs.pl b/contrib/checkLogs.pl
deleted file mode 100755
index b00503e9a..000000000
--- a/contrib/checkLogs.pl
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/perl -w
-
-use strict;
-
-my %count = ();
-my $more = 0;
-my $last = "";
-
-while (<>) {
- if ($more) {
- if (/LD_BUG/) {
- $more = 0;
- next;
- }
- if (/\"((?:[^\"\\]+|\\.*)+)\"(.*)/) {
- $last .= $1;
- if ($2 !~ /[,\)]/) {
- $more = 1;
- } else {
- $count{lc $last}++;
- $more = 0;
- }
- } elsif (/[,\)]/) {
- $count{lc $last}++;
- $more = 0;
- } elsif ($more == 2) {
- print "SKIPPED more\n";
- }
- } elsif (/log_(?:warn|err|notice)\(\s*(LD_[A-Z_]*)\s*,\s*\"((?:[^\"\\]+|\\.)*)\"(.*)/) {
- next if ($1 eq 'LD_BUG');
- my $s = $2;
- if ($3 =~ /[,\)]/ ) {
- $count{lc $s}++;
- } else {
- $more = 1;
- $last = $s;
- }
- } elsif (/log_(?:warn|err|notice)\(\s*((?:LD_[A-Z_]*)?)(.*)/) {
- next if ($1 eq 'LD_BUG');
- my $extra = $2;
- chomp $extra;
- $last = "";
- $more = 2 if ($extra eq '');
- }
-}
-
-while ((my $phrase, my $count) = each %count) {
- if ($count > 1) {
- print "$count\t$phrase\n";
- }
-}
diff --git a/contrib/checkOptionDocs.pl b/contrib/checkOptionDocs.pl
deleted file mode 100755
index 23e57b489..000000000
--- a/contrib/checkOptionDocs.pl
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-
-my %options = ();
-my %descOptions = ();
-my %torrcSampleOptions = ();
-my %manPageOptions = ();
-
-# Load the canonical list as actually accepted by Tor.
-open(F, "./src/or/tor --list-torrc-options |") or die;
-while (<F>) {
- next if m!\[notice\] Tor v0\.!;
- if (m!^([A-Za-z0-9_]+)!) {
- $options{$1} = 1;
- } else {
- print "Unrecognized output> ";
- print;
- }
-}
-close F;
-
-# Load the contents of torrc.sample
-sub loadTorrc {
- my ($fname, $options) = @_;
- local *F;
- open(F, "$fname") or die;
- while (<F>) {
- next if (m!##+!);
- if (m!#([A-Za-z0-9_]+)!) {
- $options->{$1} = 1;
- }
- }
- close F;
- 0;
-}
-
-loadTorrc("./src/config/torrc.sample.in", \%torrcSampleOptions);
-
-# Try to figure out what's in the man page.
-
-my $considerNextLine = 0;
-open(F, "./doc/tor.1.txt") or die;
-while (<F>) {
- if (m!^\*\*([A-Za-z0-9_]+)\*\*!) {
- $manPageOptions{$1} = 1;
- }
-}
-close F;
-
-# Now, display differences:
-
-sub subtractHashes {
- my ($s, $a, $b) = @_;
- my @lst = ();
- for my $k (keys %$a) {
- push @lst, $k unless (exists $b->{$k});
- }
- print "$s: ", join(' ', sort @lst), "\n\n";
- 0;
-}
-
-# subtractHashes("No online docs", \%options, \%descOptions);
-# subtractHashes("Orphaned online docs", \%descOptions, \%options);
-
-subtractHashes("Orphaned in torrc.sample.in", \%torrcSampleOptions, \%options);
-
-subtractHashes("Not in man page", \%options, \%manPageOptions);
-subtractHashes("Orphaned in man page", \%manPageOptions, \%options);
-
-
diff --git a/contrib/checkSpace.pl b/contrib/checkSpace.pl
deleted file mode 100755
index 682dbced0..000000000
--- a/contrib/checkSpace.pl
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/perl -w
-
-if ($ARGV[0] =~ /^-/) {
- $lang = shift @ARGV;
- $C = ($lang eq '-C');
-# $TXT = ($lang eq '-txt');
-}
-
-for $fn (@ARGV) {
- open(F, "$fn");
- $lastnil = 0;
- $lastline = "";
- $incomment = 0;
- while (<F>) {
- ## Warn about windows-style newlines.
- if (/\r/) {
- print " CR:$fn:$.\n";
- }
- ## Warn about tabs.
- if (/\t/) {
- print " TAB:$fn:$.\n";
- }
- ## Warn about markers that don't have a space in front of them
- if (/^[a-zA-Z_][a-zA-Z_0-9]*:/) {
- print "nosplabel:$fn:$.\n";
- }
- ## Warn about trailing whitespace.
- if (/ +$/) {
- print "Space\@EOL:$fn:$.\n";
- }
- ## Warn about control keywords without following space.
- if ($C && /\s(?:if|while|for|switch)\(/) {
- print " KW(:$fn:$.\n";
- }
- ## Warn about #else #if instead of #elif.
- if (($lastline =~ /^\# *else/) and ($_ =~ /^\# *if/)) {
- print " #else#if:$fn:$.\n";
- }
- ## Warn about some K&R violations
- if (/^\s+\{/ and $lastline =~ /^\s*(if|while|for|else if)/ and
- $lastline !~ /\{$/) {
- print "non-K&R {:$fn:$.\n";
- }
- if (/^\s*else/ and $lastline =~ /\}$/) {
- print " }\\nelse:$fn:$.\n";
- }
- $lastline = $_;
- ## Warn about unnecessary empty lines.
- if ($lastnil && /^\s*}\n/) {
- print " UnnecNL:$fn:$.\n";
- }
- ## Warn about multiple empty lines.
- if ($lastnil && /^$/) {
- print " DoubleNL:$fn:$.\n";
- } elsif (/^$/) {
- $lastnil = 1;
- } else {
- $lastnil = 0;
- }
- ## Terminals are still 80 columns wide in my world. I refuse to
- ## accept double-line lines.
- if (/^.{80}/) {
- print " Wide:$fn:$.\n";
- }
- ### Juju to skip over comments and strings, since the tests
- ### we're about to do are okay there.
- if ($C) {
- if ($incomment) {
- if (m!\*/!) {
- s!.*?\*/!!;
- $incomment = 0;
- } else {
- next;
- }
- }
- if (m!/\*.*?\*/!) {
- s!\s*/\*.*?\*/!!;
- } elsif (m!/\*!) {
- s!\s*/\*!!;
- $incomment = 1;
- next;
- }
- s!"(?:[^\"]+|\\.)*"!"X"!g;
- next if /^\#/;
- ## Warn about C++-style comments.
- if (m!//!) {
- # print " //:$fn:$.\n";
- s!//.*!!;
- }
- ## Warn about unquoted braces preceded by non-space.
- if (/([^\s'])\{/) {
- print " $1\{:$fn:$.\n";
- }
- ## Warn about multiple internal spaces.
- #if (/[^\s,:]\s{2,}[^\s\\=]/) {
- # print " X X:$fn:$.\n";
- #}
- ## Warn about { with stuff after.
- #s/\s+$//;
- #if (/\{[^\}\\]+$/) {
- # print " {X:$fn:$.\n";
- #}
- ## Warn about function calls with space before parens.
- if (/(\w+)\s\(([A-Z]*)/) {
- if ($1 ne "if" and $1 ne "while" and $1 ne "for" and
- $1 ne "switch" and $1 ne "return" and $1 ne "int" and
- $1 ne "elsif" and $1 ne "WINAPI" and $2 ne "WINAPI" and
- $1 ne "void" and $1 ne "__attribute__" and $1 ne "op") {
- print " fn ():$fn:$.\n";
- }
- }
- ## Warn about functions not declared at start of line.
- if ($in_func_head ||
- ($fn !~ /\.h$/ && /^[a-zA-Z0-9_]/ &&
- ! /^(?:const |static )*(?:typedef|struct|union)[^\(]*$/ &&
- ! /= *\{$/ && ! /;$/)) {
- if (/.\{$/){
- print "fn() {:$fn:$.\n";
- $in_func_head = 0;
- } elsif (/^\S[^\(]* +\**[a-zA-Z0-9_]+\(/) {
- $in_func_head = -1; # started with tp fn
- } elsif (/;$/) {
- $in_func_head = 0;
- } elsif (/\{/) {
- if ($in_func_head == -1) {
- print "tp fn():$fn:$.\n";
- }
- $in_func_head = 0;
- }
- }
- }
- }
- if (! $lastnil) {
- print " EOL\@EOF:$fn:$.\n";
- }
- close(F);
-}
-
diff --git a/contrib/tor-resolve.py b/contrib/client-tools/tor-resolve.py
index 47ae1a0c3..47ae1a0c3 100755
--- a/contrib/tor-resolve.py
+++ b/contrib/client-tools/tor-resolve.py
diff --git a/contrib/torify b/contrib/client-tools/torify
index 54acfed65..54acfed65 100755
--- a/contrib/torify
+++ b/contrib/client-tools/torify
diff --git a/contrib/cov-blame b/contrib/cov-blame
deleted file mode 100755
index 601f21195..000000000
--- a/contrib/cov-blame
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/python
-
-import os
-import re
-import subprocess
-import sys
-
-def handle_file(source_fname, cov_fname):
-
- lines_blm = subprocess.Popen(["git", "blame", source_fname], stdout=subprocess.PIPE).stdout.readlines()
- lines_cov = open(cov_fname).readlines()
-
- # XXXX expensive!
- while re.match(r'\s*-:\s*0:', lines_cov[0]):
- del lines_cov[0]
-
- if len(lines_blm) != len(lines_cov):
- print >>sys.stderr, "MISMATCH IN NUMBER OF LINES in",source_fname
-
- for b,c in zip(lines_blm, lines_cov):
- m = re.match(r'\s*([^\s:]+):', c)
- if not m:
- print >>sys.stderr, "CONFUSING LINE %r"% c
- cov = 'X'
- elif m.group(1) == '-':
- cov = '-'
- elif m.group(1)[0] == '#':
- cov = '#'
- elif m.group(1)[0].isdigit():
- cov = '1'
- else:
- print >>sys.stderr, "CONFUSING LINE %r"% c
- cov = 'X'
-
- print cov, b,
-
-COV_DIR = sys.argv[1]
-SOURCES = sys.argv[2:]
-
-for fn in SOURCES:
- _, base = os.path.split(fn)
- cfn = os.path.join(COV_DIR, base)
- cfn += ".gcov"
- if os.path.exists(cfn):
- handle_file(fn, cfn)
- else:
- print >>sys.stderr, "NO FILE EXISTS CALLED ",cfn
-
diff --git a/contrib/cov-diff b/contrib/cov-diff
deleted file mode 100755
index 33a54802b..000000000
--- a/contrib/cov-diff
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Copyright 2013 The Tor Project, Inc.
-# See LICENSE for licensing information.
-
-# cov-diff -- compare two directories full of gcov files.
-
-DIRA="$1"
-DIRB="$2"
-
-for A in $DIRA/*; do
- B=$DIRB/`basename $A`
- perl -pe 's/^\s*\d+:/ 1:/; s/^([^:]+:)[\d\s]+:/$1/;' "$A" > "$A.tmp"
- perl -pe 's/^\s*\d+:/ 1:/; s/^([^:]+:)[\d\s]+:/$1/;' "$B" > "$B.tmp"
- diff -u "$A.tmp" "$B.tmp"
- rm "$A.tmp" "$B.tmp"
-done
-
diff --git a/contrib/coverage b/contrib/coverage
deleted file mode 100755
index f4ae47582..000000000
--- a/contrib/coverage
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# Copyright 2013 The Tor Project, Inc.
-# See LICENSE for licensing information.
-
-# coverage -- run gcov on the appropriate set of object files to extract
-# coverage information.
-
-dst=$1
-
-for fn in src/or/*.c src/common/*.c; do
- BN=`basename $fn`
- DN=`dirname $fn`
- F=`echo $BN | sed -e 's/\.c$//;'`
- GC="${BN}.gcov"
- # Figure out the object file names
- ONS=`echo ${DN}/src_*-${F}.o`
- ONS_WILDCARD_LITERAL="${DN}/src_*-${F}.o"
- # If the wildcard didn't expand, no files
- if [ "$ONS" != "${ONS_WILDCARD_LITERAL}" ]
- then
- for on in $ONS; do
- # We should have a gcno file
- GCNO=`echo $on | sed -e 's/\.o$/\.gcno/;'`
- if [ -e $GCNO ]
- then
- # No need to test for gcda, since gcov assumes no execution
- # if it's absent
- rm -f $GC
- gcov -o $on $fn
- if [ -e $GC ]
- then
- if [ -n $dst ]
- then
- mv $GC $dst/$GC
- fi
- else
- echo "gcov -o $on $fn didn't make a .gcov file"
- fi
- else
- echo "Couldn't find gcno file for $on"
- fi
- done
- else
- echo "No object file found matching source file $fn"
- fi
-done
diff --git a/contrib/cross.sh b/contrib/cross.sh
deleted file mode 100755
index a6085a400..000000000
--- a/contrib/cross.sh
+++ /dev/null
@@ -1,195 +0,0 @@
-#!/bin/bash
-# Copyright 2006 Michael Mohr with modifications by Roger Dingledine
-# See LICENSE for licensing information.
-
-#######################################################################
-# Tor-cross: a tool to help cross-compile Tor
-#
-# The purpose of a cross-compiler is to produce an executable for
-# one system (CPU) on another. This is useful, for example, when
-# the target system does not have a native compiler available.
-# You might, for example, wish to cross-compile a program on your
-# host (the computer you're working on now) for a target such as
-# a router or handheld computer.
-#
-# A number of environment variables must be set in order for this
-# script to work:
-# $PREFIX, $CROSSPATH, $HOST_TRIPLET, $HOST,
-# and (optionally) $BUILD
-# Please run the script for a description of each one. If automated
-# builds are desired, the above variables can be exported at the top
-# of this script.
-#
-# Recent releases of Tor include test programs in configure. Normally
-# this is a good thing, since it catches a number of problems.
-# However, this also presents a problem when cross compiling, since
-# you can't run binary images for the target system on the host.
-#
-# Tor-cross assumes that you know what you're doing and removes a
-# number of checks known to cause problems with this process.
-# Note that this does not guarantee that the program will run or
-# even compile; it simply allows configure to generate the Makefiles.
-#
-# Stripping the binaries should almost always be done for an
-# embedded environment where space is at an exacting premium.
-# However, the default is NOT to strip them since they are useful for
-# debugging. If you do not plan to do any debugging and you
-# don't care about the debugging symbols, set $STRIP to "yes" before
-# running this script.
-#
-# Tor-cross was written by Michael Mohr. He can be contacted at
-# m(dot)mohr(at)laposte(dot)net. Comments are appreciated, but
-# flames go to /dev/null.
-#
-# The target with which this script is tested is little-endian
-# MIPS Linux, built on an Athlon-based Linux desktop.
-#
-#######################################################################
-
-# disable the platform-specific tests in configure
-export CROSS_COMPILE=yes
-
-# for error conditions
-EXITVAL=0
-
-if [ ! -f autogen.sh ]
-then
- echo "Please run this script from the root of the Tor distribution"
- exit -1
-fi
-
-if [ ! -f configure ]
-then
- if [ -z $GEN_BUILD ]
- then
- echo "To automatically generate the build environment, set \$GEN_BUILD"
- echo "to yes; for example,"
- echo " export GEN_BUILD=yes"
- EXITVAL=-1
- fi
-fi
-
-if [ -z $PREFIX ]
-then
- echo "You must define \$PREFIX since you are cross-compiling."
- echo "Select a non-system location (i.e. /tmp/tor-cross):"
- echo " export PREFIX=/tmp/tor-cross"
- EXITVAL=-1
-fi
-
-if [ -z $CROSSPATH ]
-then
- echo "You must define the location of your cross-compiler's"
- echo "directory using \$CROSSPATH; for example,"
- echo " export CROSSPATH=/opt/cross/staging_dir_mipsel/bin"
- EXITVAL=-1
-fi
-
-if [ -z $HOST_TRIPLET ]
-then
- echo "You must define \$HOST_TRIPLET to continue. For example,"
- echo "if you normally cross-compile applications using"
- echo "mipsel-linux-uclibc-gcc, you would set \$HOST_TRIPLET like so:"
- echo " export HOST_TRIPLET=mipsel-linux-uclibc-"
- EXITVAL=-1
-fi
-
-if [ -z $HOST ]
-then
- echo "You must specify a target processor with \$HOST; for example:"
- echo " export HOST=mipsel-unknown-elf"
- EXITVAL=-1
-fi
-
-if [ -z $BUILD ]
-then
- echo "You should specify the host machine's type with \$BUILD; for example:"
- echo " export BUILD=i686-pc-linux-gnu"
- echo "If you wish to let configure autodetect the host, set \$BUILD to 'auto':"
- echo " export BUILD=auto"
- EXITVAL=-1
-fi
-
-if [ ! -x $CROSSPATH/$HOST_TRIPLETgcc ]
-then
- echo "The specified toolchain does not contain an executable C compiler."
- echo "Please double-check your settings and rerun cross.sh."
- EXITVAL=-1
-fi
-
-if [ $EXITVAL -ne 0 ]
-then
- echo "Remember, you can hard-code these values in cross.sh if needed."
- exit $EXITVAL
-fi
-
-if [ ! -z "$GEN_BUILD" -a ! -f configure ]
-then
- export NOCONF=yes
- ./autogen.sh
-fi
-
-# clean up any existing object files
-if [ -f src/or/tor ]
-then
- make clean
-fi
-
-# Set up the build environment and try to run configure
-export PATH=$PATH:$CROSSPATH
-export RANLIB=${HOST_TRIPLET}ranlib
-export CC=${HOST_TRIPLET}gcc
-
-if [ $BUILD == "auto" ]
-then
- ./configure \
- --enable-debug \
- --enable-eventdns \
- --prefix=$PREFIX \
- --host=$HOST
-else
- ./configure \
- --enable-debug \
- --enable-eventdns \
- --prefix=$PREFIX \
- --host=$HOST \
- --build=$BUILD
-fi
-
-# has a problem occurred?
-if [ $? -ne 0 ]
-then
- echo ""
- echo "A problem has been detected with configure."
- echo "Please check the output above and rerun cross.sh"
- echo ""
- exit -1
-fi
-
-# Now we're cookin'
-
-make
-
-# has a problem occurred?
-if [ $? -ne 0 ]
-then
- echo ""
- echo "A problem has been detected with make."
- echo "Please check the output above and rerun make."
- echo ""
- exit -1
-fi
-
-# if $STRIP has length (i.e. STRIP=yes), strip the binaries
-if [ ! -z $STRIP ]
-then
-${HOST_TRIPLET}strip \
- src/or/tor \
- src/test/test \
- src/tools/tor-resolve
-fi
-
-echo ""
-echo "Tor should be compiled at this point. Now run 'make install' to"
-echo "install to $PREFIX"
-echo ""
diff --git a/contrib/add-tor b/contrib/dirauth-tools/add-tor
index 5a12abca8..5a12abca8 100755
--- a/contrib/add-tor
+++ b/contrib/dirauth-tools/add-tor
diff --git a/contrib/nagios-check-tor-authority-cert b/contrib/dirauth-tools/nagios-check-tor-authority-cert
index 46dc7284b..46dc7284b 100755
--- a/contrib/nagios-check-tor-authority-cert
+++ b/contrib/dirauth-tools/nagios-check-tor-authority-cert
diff --git a/contrib/directory-archive/crontab.sample b/contrib/directory-archive/crontab.sample
deleted file mode 100644
index e2821aa93..000000000
--- a/contrib/directory-archive/crontab.sample
+++ /dev/null
@@ -1,3 +0,0 @@
-10 * * * * cd projects/tor-v2dir && ./fetch-all-v3
-40 * * * * cd projects/tor-v2dir && ./fetch-all
-15 3 6 * * cd projects/tor-v2dir && ./sort-into-month-folder > /dev/null && ./tar-them-up last > /dev/null
diff --git a/contrib/directory-archive/fetch-all b/contrib/directory-archive/fetch-all
deleted file mode 100755
index dfa5a1b3e..000000000
--- a/contrib/directory-archive/fetch-all
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-
-# Download all current v2 directory status documents, then download
-# the descriptors and extra info documents.
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-TZ=UTC
-export TZ
-
-DIRSERVERS=""
-DIRSERVERS="$DIRSERVERS 86.59.21.38:80" # tor26
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9031" # moria1
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9032" # moria2
-DIRSERVERS="$DIRSERVERS 194.109.206.212:80" # dizum
-
-DATEDIR=$(date "+%Y/%m/%d")
-TIME=$(date "+%Y%m%d-%H%M%S")
-
-. fetch-all-functions
-
-statuses=""
-for dirserver in $DIRSERVERS; do
- authorities=$(wget -q -O - http://$dirserver/tor/status/all | egrep '^fingerprint ' | awk '{print $2}')
- if [ "$authorities" == "" ]; then
- echo "Did not get a list of authorities from $dirserver, going to next" 2>&1
- continue
- fi
-
- dir="status/$DATEDIR"
- [ -d "$dir" ] || mkdir -p "$dir"
-
- authprefix="$dir/$TIME-"
- for fp in $authorities; do
- wget -q -O "$authprefix$fp" http://$dirserver/tor/status/fp/"$fp"
- bzip2 "$authprefix$fp"
- statuses="$statuses $authprefix$fp.bz2"
- done
- if [ "$statuses" == "" ]; then
- echo "Did not get any statuses from $dirserver, going to next" 2>&1
- continue
- else
- break
- fi
-done
-
-if [ "$statuses" = "" ]; then
- echo "No statuses available" 2>&1
- exit 1
-fi
-
-digests=$( for i in ` bzcat $statuses | awk '$1 == "r" {printf "%s=\n", $4}' | sort -u `; do
- echo $i | \
- base64-decode | \
- perl -e 'undef $/; $a=<>; print unpack("H\*", $a),"\n";';
- done )
-for digest in $digests; do
- fetch_digest "$digest" "server-descriptor"
-done
diff --git a/contrib/directory-archive/fetch-all-functions b/contrib/directory-archive/fetch-all-functions
deleted file mode 100644
index a9335bda7..000000000
--- a/contrib/directory-archive/fetch-all-functions
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-
-# function used by fetch-all* to download server descriptors and
-# extra info documents
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-fetch_digest() {
- local digest
- local objecttype
- local urlpart
- local pathpart
- local target
- local targetdir
- local dirserver
- local ei
-
- digest="$1"
- objecttype="$2"
- if [ "$objecttype" = "server-descriptor" ] ; then
- urlpart="server"
- pathpart="server-descriptor"
- elif [ "$objecttype" = "extra-info" ] ; then
- urlpart="extra"
- pathpart="extra-info"
- else
- echo "Called fetch_digest with illegal objecttype '$objecttype'" >&2
- exit 1
- fi
- target=$( echo $digest | sed -e 's#^\(.\)\(.\)#'"$pathpart"'/\1/\2/\1\2#' )
- targetdir=$( dirname $target )
- [ -d "$targetdir" ] || mkdir -p "$targetdir"
- if ! [ -e "$target" ]; then
- for dirserver in $DIRSERVERS; do
- wget -q -O "$target" http://$dirserver/tor/$urlpart/d/"$digest" || rm -f "$target"
- if [ -s "$target" ]; then
- if egrep '^opt extra-info-digest ' "$target" > /dev/null; then
- ei=$( egrep '^opt extra-info-digest ' "$target" | awk '{print $3}' | tr 'A-F' 'a-f' )
- fetch_digest "$ei" "extra-info"
- elif egrep '^extra-info-digest ' "$target" > /dev/null; then
- ei=$( egrep '^extra-info-digest ' "$target" | awk '{print $2}' | tr 'A-F' 'a-f' )
- fetch_digest "$ei" "extra-info"
- fi
- break
- else
- rm -f "$target"
- fi
- done
- fi
- #if ! [ -e "$target" ]; then
- # echo "$objecttype $digest" >> failed
- #fi
-}
-
-if [ -x /usr/bin/base64 ] ; then
- base64-decode() {
- /usr/bin/base64 -d
- }
-else
- base64-decode() {
- perl -MMIME::Base64 -e 'print decode_base64(<>)'
- }
-fi
diff --git a/contrib/directory-archive/fetch-all-v3 b/contrib/directory-archive/fetch-all-v3
deleted file mode 100755
index a4746e02c..000000000
--- a/contrib/directory-archive/fetch-all-v3
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/bash
-
-# Download all current v3 directory status votes and the consensus document,
-# then download the descriptors and extra info documents.
-
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-TZ=UTC
-export TZ
-
-DIRSERVERS=""
-DIRSERVERS="$DIRSERVERS 86.59.21.38:80" # tor26
-DIRSERVERS="$DIRSERVERS 128.31.0.34:9031" # moria1
-DIRSERVERS="$DIRSERVERS 216.224.124.114:9030" # ides
-DIRSERVERS="$DIRSERVERS 80.190.246.100:80" # gabelmoo
-#DIRSERVERS="$DIRSERVERS 140.247.60.64:80" # lefkada
-DIRSERVERS="$DIRSERVERS 194.109.206.212:80" # dizum
-#DIRSERVERS="$DIRSERVERS 128.31.0.34:9032" # moria2
-DIRSERVERS="$DIRSERVERS 213.73.91.31:80" # dannenberg
-DIRSERVERS="$DIRSERVERS 208.83.223.34:443" # urras
-TIME=$(date "+%Y%m%d-%H%M%S")
-
-. fetch-all-functions
-
-consensus=""
-tmpdir="consensus/tmp"
-[ -d "$tmpdir" ] || mkdir -p "$tmpdir"
-for dirserver in $DIRSERVERS; do
- wget -q -O "$tmpdir/$TIME-consensus" http://$dirserver/tor/status-vote/current/consensus
- if [ "$?" != 0 ]; then
- rm -f "$tmpdir/$TIME-consensus"
- continue
- fi
-
- freshconsensus="$tmpdir/$TIME-consensus"
-
- timestamp=$(awk '$1=="valid-after" {printf "%s-%s", $2, $3}' < "$freshconsensus")
- datedir=$(awk '$1=="valid-after" {printf "%s", $2}' < "$freshconsensus" | tr '-' '/')
- dir="consensus/$datedir"
- [ -d "$dir" ] || mkdir -p "$dir"
-
-
- consensus="$dir/$timestamp-consensus.bz2"
- if ! [ -e "$consensus" ]; then
- # the consensus is new, or at least we don't have it yet
- bzip2 "$freshconsensus"
- mv "$freshconsensus.bz2" "$consensus"
- break
- fi
-
- rm -f "$freshconsensus"
- echo "Consensus from $timestamp (gotten from $dirserver) already exists!" >&2
- # maybe there is a newer one on a different authority, so try again.
-done
-
-if [ "$consensus" = "" ]; then
- echo "No consensus available" 2>&1
- exit 1
-fi
-
-
-votes=$(bzcat $consensus | awk '$1 == "vote-digest" {print $2}')
-for vote in $votes; do
- for dirserver in $DIRSERVERS; do
- wget -q -O "$dir/$TIME-vote-$vote" http://$dirserver/tor/status-vote/current/d/$vote
- if [ "$?" != 0 ]; then
- rm -f "$dir/$TIME-vote-$vote"
- continue
- fi
- break
- done
- if [ -e "$dir/$TIME-vote-$vote" ]; then
- voteridentity=$(awk '$1=="fingerprint" {print $2}' < "$dir/$TIME-vote-$vote")
- if [ -e "$dir/$timestamp-vote-$voteridentity-$vote.bz2" ]; then
- echo "Vote $vote from $voteridentity already exists!" >&2
- rm -f "$dir/$TIME-vote-$vote"
- continue;
- fi
- mv "$dir/$TIME-vote-$vote" "$dir/$timestamp-vote-$voteridentity-$vote"
- bzip2 "$dir/$timestamp-vote-$voteridentity-$vote"
- else
- echo "Failed to get vote $vote!" >&2
- fi
-done
-
-digests=$( for i in ` bzcat $consensus | awk '$1 == "r" {printf "%s=\n", $4}' | sort -u `; do
- echo $i | \
- base64-decode | \
- perl -e 'undef $/; $a=<>; print unpack("H\*", $a),"\n";';
- done )
-for digest in $digests; do
- fetch_digest "$digest" "server-descriptor"
-done
diff --git a/contrib/directory-archive/sort-into-month-folder b/contrib/directory-archive/sort-into-month-folder
deleted file mode 100755
index 95033c58d..000000000
--- a/contrib/directory-archive/sort-into-month-folder
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/perl -w
-
-# Sort dumped consensuses, statuses, descriptors etc into per-month folders.
-
-# Copyright (c) 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-use strict;
-use File::Find;
-use File::Basename;
-use File::stat;
-use Time::Local;
-
-
-my $cutofftime;
-
-
-sub wanted() {
- return unless -f;
- my $mtime = stat($_)->mtime;
- return if $mtime >= $cutofftime;
-
- my (undef,undef,undef,undef,$mon,$year,undef,undef,undef) = gmtime $mtime;
-
- my $bn = basename $_;
- my $dn = dirname $_;
- my @path = split /\//, $dn;
- $path[0] .= sprintf 's-%4d-%02d', 1900+$year, $mon+1;
- $dn = join '/', @path;
-
- if (! -d $dn) {
- my $p = '.';
- for my $component (@path) {
- $p .= '/'.$component;
- if (! -d $p) {
- mkdir $p or die ("Cannot mkdir $p: $!\n");
- };
- };
- };
-
- print "$_ -> $dn/$bn\n";
- rename $_, $dn.'/'.$bn or die ("Cannot rename $_ to $dn/$bn: $!\n");
-};
-
-my (undef,undef,undef,undef,$mon,$year,undef,undef,undef) = gmtime(time - 5*24*3600);
-$cutofftime = timegm(0,0,0,1,$mon,$year);
-find( {
- wanted => \&wanted,
- no_chdir => 1
- },
- 'server-descriptor');
-
-find( {
- wanted => \&wanted,
- no_chdir => 1
- },
- 'extra-info');
diff --git a/contrib/directory-archive/tar-them-up b/contrib/directory-archive/tar-them-up
deleted file mode 100755
index 2775ca9ee..000000000
--- a/contrib/directory-archive/tar-them-up
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/bin/sh
-
-# Tar up dumped consensuses, statuses, descriptors etc from per-month folders
-# into per-month tarballs.
-
-# Copyright (c) 2006, 2007, 2008 Peter Palfrader
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-set -e
-set -x
-set -u
-
-usage() {
- echo "Usage: $0 <year> <month>" >&2
- echo " $0 last (does last month)" >&2
- exit 1
-}
-
-if [ -z "${1:-}" ]; then
- usage
-fi
-
-if [ "$1" = "last" ]; then
- year=`date --date="last month" +'%Y'`
- month=`date --date="last month" +'%m'`
-elif [ -z "${2:-}" ]; then
- usage
-else
- year="$1"
- month="$2"
-fi
-
-if [ "$year" -lt 2000 ] || [ "$year" -gt 2020 ] ||
- [ "$month" -lt 1 ] || [ "$month" -gt 12 ] ||
- [ "`echo -n $month | wc -c`" != 2 ]; then
- usage
-fi
-
-
-this_year=`date --utc +'%Y'`
-this_month=`date --utc +'%m'`
-
-if [ "`date -d $this_year-$this_month-01 +%s`" -le "`date -d $year-$month-01 +%s`" ]; then
- echo "Date in the future or current month?" >&2
- exit 1
-fi
-
-
-
-
-
-for file in \
- "extra-infos-$year-$month.tar.bz2" \
- "server-descriptors-$year-$month.tar.bz2" \
- "consensuses-$year-$month.tar.bz2" \
- "statuses-$year-$month.tar.bz2" \
- ; do
- if [ -e "$file" ]; then
- echo "$file already exists" >&2
- exit 1
- fi
-done
-
-for dir in \
- "extra-infos-$year-$month" \
- "server-descriptors-$year-$month" \
- "consensus/$year/$month" \
- "status/$year/$month" \
- ; do
- if ! [ -d "$dir" ]; then
- echo "$dir not found" >&2
- exit 1
- fi
-done
-
-for dir in \
- "consensuses-$year-$month" \
- "statuses-$year-$month" \
- ; do
- if [ -e "$dir" ]; then
- echo "$dir already exists" >&2
- exit 1
- fi
-done
-
-for kind in consensus status; do
- mv "$kind"/$year/$month "$kind"es-$year-$month
- find "$kind"es-$year-$month -type f -name '*.bz2' -print0 | xargs -0 bunzip2 -v
- tar cjvf "$kind"es-$year-$month.tar.bz2 "$kind"es-$year-$month
- rm -rf "$kind"es-$year-$month
-done
-
-for kind in extra-infos server-descriptors; do
- tar cjvf "$kind"-$year-$month.tar.bz2 "$kind"-$year-$month
- rm -rf "$kind"-$year-$month
-done
-
-
-
-[ -d Archive ] || mkdir Archive
-
-for kind in consensus status; do
- t="$kind"es-$year-$month.tar.bz2
- ! [ -e Archive/"$t" ] && mv "$t" Archive/"$t"
-done
-
-for kind in extra-infos server-descriptors; do
- t="$kind"-$year-$month.tar.bz2
- ! [ -e Archive/"$t" ] && mv "$t" Archive/"$t"
-done
diff --git a/contrib/rc.subr b/contrib/dist/rc.subr
index d757e8952..d757e8952 100644
--- a/contrib/rc.subr
+++ b/contrib/dist/rc.subr
diff --git a/contrib/suse/include.am b/contrib/dist/suse/include.am
index 4aed0e123..4aed0e123 100644
--- a/contrib/suse/include.am
+++ b/contrib/dist/suse/include.am
diff --git a/contrib/suse/tor.sh.in b/contrib/dist/suse/tor.sh.in
index b7e9005eb..b7e9005eb 100644
--- a/contrib/suse/tor.sh.in
+++ b/contrib/dist/suse/tor.sh.in
diff --git a/contrib/tor.sh.in b/contrib/dist/tor.sh.in
index 92f890681..92f890681 100644
--- a/contrib/tor.sh.in
+++ b/contrib/dist/tor.sh.in
diff --git a/contrib/torctl.in b/contrib/dist/torctl.in
index 4cc137da4..4cc137da4 100644
--- a/contrib/torctl.in
+++ b/contrib/dist/torctl.in
diff --git a/contrib/findMergedChanges.pl b/contrib/findMergedChanges.pl
deleted file mode 100755
index d6c4105b7..000000000
--- a/contrib/findMergedChanges.pl
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/perl
-
-use warnings;
-use strict;
-
-sub nChanges {
- my ($branches, $fname) = @_;
- local *F;
- # requires perl 5.8. Avoids shell issues if we ever get a changes
- # file named by the parents of Little Johnny Tables.
- open F, "-|", "git", "log", "--no-merges", "--pretty=format:%H", $branches, "--", $fname
- or die "$!";
- my @changes = <F>;
- return scalar @changes
-}
-
-my $look_for_type = "merged";
-
-if (! @ARGV) {
- print <<EOF
-Usage:
- findMergedChanges.pl [--merged/--unmerged/--weird/--list] [--branch=<branchname] [--head=<branchname>] changes/*
-
-A change is "merged" if it has ever been merged to release-0.2.4 and it has had
-no subsequent changes in master.
-
-A change is "unmerged" if it has never been merged to release-0.2.4 and it
-has had changes in master.
-
-A change is "weird" if it has been merged to release-0.2.4 and it *has* had
-subsequent changes in master.
-
-Suggested application:
- findMergedChanges.pl --merged changes/* | xargs -n 1 git rm
-
-EOF
-}
-
-my $target_branch = "origin/release-0.2.4";
-my $head = "origin/master";
-
-while (@ARGV and $ARGV[0] =~ /^--/) {
- my $flag = shift @ARGV;
- if ($flag =~ /^--(weird|merged|unmerged|list)/) {
- $look_for_type = $1;
- } elsif ($flag =~ /^--branch=(\S+)/) {
- $target_branch = $1;
- } elsif ($flag =~ /^--head=(\S+)/) {
- $head = $1;
- } else {
- die "Unrecognized flag $flag";
- }
-}
-
-for my $changefile (@ARGV) {
- my $n_merged = nChanges($target_branch, $changefile);
- my $n_postmerged = nChanges("${target_branch}..${head}", $changefile);
- my $type;
-
- if ($n_merged != 0 and $n_postmerged == 0) {
- $type = "merged";
- } elsif ($n_merged == 0 and $n_postmerged != 0) {
- $type = "unmerged";
- } else {
- $type = "weird";
- }
-
- if ($type eq $look_for_type) {
- print "$changefile\n";
- } elsif ($look_for_type eq 'list') {
- printf "% 8s: %s\n", $type, $changefile;
- }
-}
diff --git a/contrib/format_changelog.py b/contrib/format_changelog.py
deleted file mode 100755
index 6997d958a..000000000
--- a/contrib/format_changelog.py
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2014, The Tor Project, Inc.
-# See LICENSE for licensing information
-#
-# This script reformats a section of the changelog to wrap everything to
-# the right width and put blank lines in the right places. Eventually,
-# it might include a linter.
-#
-# To run it, pipe a section of the changelog (starting with "Changes
-# in Tor 0.x.y.z-alpha" through the script.)
-
-import os
-import re
-import sys
-import textwrap
-
-TP_MAINHEAD = 0
-TP_HEADTEXT = 1
-TP_BLANK = 2
-TP_SECHEAD = 3
-TP_ITEMFIRST = 4
-TP_ITEMBODY = 5
-TP_END = 6
-
-def head_parser(line):
- if re.match(r'^[A-Z]', line):
- return TP_MAINHEAD
- elif re.match(r'^ o ', line):
- return TP_SECHEAD
- elif re.match(r'^\s*$', line):
- return TP_BLANK
- else:
- return TP_HEADTEXT
-
-def body_parser(line):
- if re.match(r'^ o ', line):
- return TP_SECHEAD
- elif re.match(r'^ -',line):
- return TP_ITEMFIRST
- elif re.match(r'^ \S', line):
- return TP_ITEMBODY
- elif re.match(r'^\s*$', line):
- return TP_BLANK
- elif re.match(r'^Changes in', line):
- return TP_END
- else:
- print "Weird line %r"%line
-
-class ChangeLog(object):
- def __init__(self):
- self.mainhead = None
- self.headtext = []
- self.curgraf = None
- self.sections = []
- self.cursection = None
- self.lineno = 0
-
- def addLine(self, tp, line):
- self.lineno += 1
-
- if tp == TP_MAINHEAD:
- assert not self.mainhead
- self.mainhead = line
-
- elif tp == TP_HEADTEXT:
- if self.curgraf is None:
- self.curgraf = []
- self.headtext.append(self.curgraf)
- self.curgraf.append(line)
-
- elif tp == TP_BLANK:
- self.curgraf = None
-
- elif tp == TP_SECHEAD:
- self.cursection = [ self.lineno, line, [] ]
- self.sections.append(self.cursection)
-
- elif tp == TP_ITEMFIRST:
- item = ( self.lineno, [ [line] ])
- self.curgraf = item[1][0]
- self.cursection[2].append(item)
-
- elif tp == TP_ITEMBODY:
- if self.curgraf is None:
- self.curgraf = []
- self.cursection[2][1][-1].append(self.curgraf)
- self.curgraf.append(line)
-
- else:
- assert "This" is "unreachable"
-
- def lint_head(self, line, head):
- m = re.match(r'^ *o ([^\(]+)((?:\([^\)]+\))?):', head)
- if not m:
- print >>sys.stderr, "Weird header format on line %s"%line
-
- def lint_item(self, line, grafs, head_type):
- pass
-
- def lint(self):
- self.head_lines = {}
- for sec_line, sec_head, items in self.sections:
- head_type = self.lint_head(sec_line, sec_head)
- for item_line, grafs in items:
- self.lint_item(item_line, grafs, head_type)
-
- def dumpGraf(self,par,indent1,indent2=-1):
- if indent2 == -1:
- indent2 = indent1
- text = " ".join(re.sub(r'\s+', ' ', line.strip()) for line in par)
- print textwrap.fill(text, width=72,
- initial_indent=" "*indent1,
- subsequent_indent=" "*indent2,
- break_on_hyphens=False)
-
- def dump(self):
- print self.mainhead
- for par in self.headtext:
- self.dumpGraf(par, 2)
- print
- for _,head,items in self.sections:
- if not head.endswith(':'):
- print >>sys.stderr, "adding : to %r"%head
- head = head + ":"
- print head
- for _,grafs in items:
- self.dumpGraf(grafs[0],4,6)
- for par in grafs[1:]:
- print
- self.dumpGraf(par,6,6)
- print
- print
-
-CL = ChangeLog()
-parser = head_parser
-
-sys.stdin = open('ChangeLog', 'r')
-
-for line in sys.stdin:
- line = line.rstrip()
- tp = parser(line)
-
- if tp == TP_SECHEAD:
- parser = body_parser
- elif tp == TP_END:
- nextline = line
- break
-
- CL.addLine(tp,line)
-
-CL.lint()
-
-sys.stdout = open('ChangeLog.new', 'w')
-
-CL.dump()
-
-print nextline
-
-for line in sys.stdin:
- sys.stdout.write(line)
-
-os.rename('ChangeLog.new', 'ChangeLog')
diff --git a/contrib/make-signature.sh b/contrib/make-signature.sh
deleted file mode 100755
index 4aba08b75..000000000
--- a/contrib/make-signature.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-set -eu
-
-if test "$1" = "" ; then
- echo "I need a package as an argument."
- exit 1
-fi
-
-PACKAGEFILE=$1
-
-if test ! -f "$PACKAGEFILE" ; then
- echo "$PACKAGEFILE is not a file."
- exit 1
-fi
-
-DIGESTNAME=sha256
-DIGESTOUTPUT=`gpg --print-md $DIGESTNAME $PACKAGEFILE`
-
-RAWDIGEST=`gpg --print-md $DIGESTNAME $PACKAGEFILE | sed -e 's/^[^ ]*: //' `
-
-# These regexes are a little fragile, but I think they work for us.
-VERSION=`echo $PACKAGEFILE | sed -e 's/^[a-z\-]*//' -e 's/\.[\.a-z]*$//' `
-PACKAGE=`echo $PACKAGEFILE | sed -e 's/-[0-9].*//'`
-SIGFILE_UNSIGNED="$PACKAGE-$VERSION-signature"
-SIGNATUREFILE="$SIGFILE_UNSIGNED.asc"
-
-cat >$SIGFILE_UNSIGNED <<EOF
-This is the signature file for "$PACKAGEFILE",
-which contains version "$VERSION" of "$PACKAGE".
-
-Here's how to check this signature.
-
-1) Make sure that this is really a signature file, and not a forgery,
- with:
-
- "gpg --verify $SIGNATUREFILE"
-
- The key should be one of the keys that signs the Tor release; the
- official Tor website has more information on those.
-
- If this step fails, then either you are missing the correct key, or
- this signature file was not really signed by a Tor packager.
- Beware!
-
-2) Make sure that the package you wanted is indeed "$PACKAGE", and that
- its version you wanted is indeed "$VERSION". If you wanted a
- different package, or a different version, this signature file is
- not the right one!
-
-3) Now that you're sure you have the right signature file, make sure
- that you got the right package. Check its $DIGESTNAME digest with
-
- "gpg --print-md $DIGESTNAME $PACKAGEFILE"
-
- The output should match this, exactly:
-
-$DIGESTOUTPUT
-
- Make sure that every part of the output matches: don't just check the
- first few characters. If the digest does not match, you do not have
- the right package file. It could even be a forgery.
-
-Frequently asked questions:
-
-Q: Why not just sign the package file, like you used to do?
-A: GPG signatures authenticate file contents, but not file names. If
- somebody gave you a renamed file with a matching renamed signature
- file, the signature would still be given as "valid".
-
---
-FILENAME: $PACKAGEFILE
-PACKAGE: $PACKAGE
-VERSION: $VERSION
-DIGESTALG: $DIGESTNAME
-DIGEST: $RAWDIGEST
-EOF
-
-gpg --clearsign $SIGFILE_UNSIGNED
diff --git a/contrib/mdd.py b/contrib/mdd.py
deleted file mode 100755
index e0b496b8f..000000000
--- a/contrib/mdd.py
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/env python2.3
-
-import re, sys
-import textwrap
-
-files = sys.argv[1:]
-funcDeclaredIn = {}
-fileDeclares = {}
-functionCalls = {}
-funcCalledByFile = {}
-funcCalledByFunc = {}
-
-cpp_re = re.compile(r'//.*$')
-c_re = re.compile(r'/[*]+(?:[^*]+|[*]+[^/*])*[*]+/', re.M|re.S)
-
-for fname in files:
- f = open(fname, 'r')
- curFunc = "???"
- functionCalls.setdefault(curFunc,{})
- lineno = 0
- body = f.read()
- body = cpp_re.sub(" ",body)
- body = c_re.sub(" ",body)
- #if fname == 'dns.c': print body
- for line in body.split("\n"):
- lineno += 1
- m = re.match(r'^[^\s/].*\s(\w+)\([^;]*$', line)
- if m:
- #print line, "->", m.group(1)
- curFunc = m.group(1)
- if curFunc[0] == '_': curFunc = curFunc[1:]
- functionCalls.setdefault(curFunc,{})
- funcDeclaredIn[m.group(1)] = fname
- fileDeclares.setdefault(fname, {})[m.group(1)] = 1
- continue
- m = re.match(r'^(\w+)\([^;]', line)
- if m:
- #print line, "->", m.group(1)
- curFunc = m.group(1)
- if curFunc[0] == '_': curFunc = curFunc[1:]
- functionCalls.setdefault(curFunc,{})
- funcDeclaredIn[m.group(1)] = fname
- fileDeclares.setdefault(fname, {})[m.group(1)] = 1
- continue
- while line:
- m = re.search(r'(\w+)\(', line)
- if not m: break
- #print fname, line, curFunc, "->", m.group(1)
- fn = m.group(1)
- if fn[0] == '_':
- fn = fn[1:]
- functionCalls[curFunc][m.group(1)] = 1
- #if curFunc == "???":
- # print ">>!!!!! at %s:%s"%(fname,lineno)
- funcCalledByFunc.setdefault(m.group(1), {})[curFunc]=1
- funcCalledByFile.setdefault(m.group(1), {})[fname]=1
- line = line[m.end():]
-
- f.close()
-
-fileUsers = {}
-fileUses = {}
-
-for fname in files:
- print "%s:"%fname
- users = {}
- for func in fileDeclares[fname]:
- cb = funcCalledByFile.get(func,{}).keys()
- for f in cb: users[f] = 1
- #print "users[%s] = %s"%(f,users[f])
- users = users.keys()
- users.sort()
- fileUsers[fname] = users
- for user in users:
- fileUses.setdefault(user,[]).append(fname)
- if user == fname: continue
- print " from %s:"%user
- for func in fileDeclares[fname]:
- if funcCalledByFile.get(func,{}).get(user,0):
- print " %s()"%func
-
-def wrap(s, pre):
- return textwrap.fill(s,
- width=77, initial_indent=pre,
- subsequent_indent=" "*len(pre))
-
-for fname in files:
- print
- print "===== %s"%fname
- print wrap(" ".join(fileUses[fname]),
- " Calls: ")
- print wrap(" ".join(fileUsers[fname]),
- " Called by: ")
-
-print "=============================="
-
-funcnames = functionCalls.keys()
-funcnames.sort()
-
-if 1:
- for func in funcnames:
- print "===== %s"%func
- callers = [c for c in funcCalledByFunc.get(func,{}).keys()
- if c != "???"]
- callers.sort()
- called = [c for c in functionCalls[func].keys() if c != "???" and
- c in funcnames]
- called.sort()
- print wrap(" ".join(callers),
- " Called by:")
- print wrap(" ".join(called),
- " Calls:")
-
-# simple topological sort.
-functionDepth = {}
-while 1:
- BIG = 1000000
- any = 0
- for func in funcnames:
- if functionDepth.has_key(func):
- continue
- called = [c for c in functionCalls[func] if c != func and
- functionCalls.has_key(c)]
- if len(called) == 0:
- functionDepth[func] = 0
- #print "Depth(%s)=%s"%(func,0)
- any = 1
- continue
- calledDepths = [ functionDepth.get(c,BIG) for c in called ]
- if max(calledDepths) < BIG:
- d = functionDepth[func] = max(calledDepths)+1
- #print "Depth(%s)=%s"%(func,d)
- any = 1
- continue
- if not any:
- break
-
-# compute lexical closure.
-cycCalls = {}
-for func in funcnames:
- if not functionDepth.has_key(func):
- calls = [ c for c in functionCalls[func] if c != func and
- functionCalls.has_key(c) and not functionDepth.has_key(c)]
- cycCalls[func] = d = {}
- for c in calls:
- d[c]=1
-
-cycNames = cycCalls.keys()
-while 1:
- any = 0
- for func in cycNames:
- L = len(cycCalls[func])
- for called in cycCalls[func].keys():
- cycCalls[func].update(cycCalls[called])
- if L != len(cycCalls[func]):
- any = 1
- if not any:
- break
-
-depthList = [ (v,k) for k,v in functionDepth.items() ]
-depthList.sort()
-cycList = [ (len(v),k) for k,v in cycCalls.items() ]
-cycList.sort()
-for depth,name in depthList:
- print "Depth[%s]=%s"%(name,depth)
-for bredth,name in cycList:
- print "Width[%s]=%s"%(name,bredth)
-
-print "Sorted %s / %s"%(len(functionDepth),len(funcnames))
diff --git a/contrib/netinst.nsi b/contrib/netinst.nsi
deleted file mode 100644
index 08d950ab0..000000000
--- a/contrib/netinst.nsi
+++ /dev/null
@@ -1,74 +0,0 @@
-!include "MUI.nsh"
-!include "LogicLib.nsh"
-!include "FileFunc.nsh"
-
-!define VERSION "0.2.1.13"
-!define INSTALLER "TorNetInstaller.exe"
-!define WEBSITE "https://www.torproject.org/"
-!define LICENSE "LICENSE"
-
-SetCompressor /SOLID BZIP2
-RequestExecutionLevel user
-OutFile ${INSTALLER}
-InstallDir "$TEMP\TorInstTmp"
-SetOverWrite on
-Name "Tor Network Installer"
-Caption "Tor Network Installer"
-BrandingText "Tor Network Installer"
-CRCCheck on
-XPStyle on
-ShowInstDetails hide
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Tor"
-VIAddVersionKey "Comments" "${WEBSITE}"
-VIAddVersionKey "LegalTrademarks" "Three line BSD"
-VIAddVersionKey "LegalCopyright" "©2004-2011, Roger Dingledine, Nick Mathewson, The Tor Project, Inc."
-VIAddVersionKey "FileDescription" "Tor is an implementation of Onion Routing. You can read more at ${WEBSITE}"
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_ICON "torinst32.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_LANGUAGE "English"
-
-Section "Tor" Tor
- SectionIn RO
- SetOutPath $INSTDIR
- Call ExtractPackages
- Call RunInstallers
- Call LaunchVidalia
- Call CleanUpTemp
-SectionEnd
-
-Function ExtractPackages
- File "license.msi"
- File "thandy.msi"
-FunctionEnd
-
-Function RunInstallers
- ExecWait 'msiexec /i "$INSTDIR\license.msi" /qn'
- ExecWait 'msiexec /i "$INSTDIR\thandy.msi" NOSC=1 /qn'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Tor Updates" /bundleinfo/tor/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update "--repo=$LOCALAPPDATA\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Tor Updates" /bundleinfo/tor/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Polipo Updates" /bundleinfo/polipo/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\TorButton Updates" /bundleinfo/torbutton/win32/'
- ExecWait '"$LOCALAPPDATA\Programs\Thandy\thandy.exe" update --install "--repo=$LOCALAPPDATA\Thandy\Vidalia Updates" /bundleinfo/vidalia/win32/'
- ExpandEnvStrings $0 %COMSPEC%
- Exec '"$0" /C "$INSTDIR\tbcheck.bat"'
-FunctionEnd
-
-Function LaunchVidalia
- SetOutPath "$LOCALAPPDATA\Programs\Vidalia"
- Exec 'vidalia.exe -loglevel info -logfile log.txt'
-FunctionEnd
-
-Function CleanUpTemp
- ExecWait '"del" "$INSTDIR\license.msi"'
- ExecWait '"del" "$INSTDIR\thandy.msi"'
- SetOutPath $TEMP
- RMDir /r $TEMP\TorInstTmp
-FunctionEnd
-
diff --git a/contrib/linux-tor-prio.sh b/contrib/operator-tools/linux-tor-prio.sh
index ea9e0ddaa..ea9e0ddaa 100644
--- a/contrib/linux-tor-prio.sh
+++ b/contrib/operator-tools/linux-tor-prio.sh
diff --git a/contrib/tor-exit-notice.html b/contrib/operator-tools/tor-exit-notice.html
index 8cf5c294f..8cf5c294f 100644
--- a/contrib/tor-exit-notice.html
+++ b/contrib/operator-tools/tor-exit-notice.html
diff --git a/contrib/tor.logrotate.in b/contrib/operator-tools/tor.logrotate.in
index 6e75f80bf..6e75f80bf 100644
--- a/contrib/tor.logrotate.in
+++ b/contrib/operator-tools/tor.logrotate.in
diff --git a/contrib/check-tor b/contrib/or-tools/check-tor
index e981a35fc..e981a35fc 100755
--- a/contrib/check-tor
+++ b/contrib/or-tools/check-tor
diff --git a/contrib/checksocks.pl b/contrib/or-tools/checksocks.pl
index 3fcc0df14..3fcc0df14 100755
--- a/contrib/checksocks.pl
+++ b/contrib/or-tools/checksocks.pl
diff --git a/contrib/exitlist b/contrib/or-tools/exitlist
index 3fd26b516..3fd26b516 100755
--- a/contrib/exitlist
+++ b/contrib/or-tools/exitlist
diff --git a/contrib/package_nsis-weasel.sh b/contrib/package_nsis-weasel.sh
deleted file mode 100755
index 8dd494852..000000000
--- a/contrib/package_nsis-weasel.sh
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/bin/sh
-
-set -e
-
-#
-# Script to package a Tor installer on win32. This script assumes that
-# you have already built Tor, that you are running cygwin, and that your
-# environment is basically exactly the same as Nick's.
-
-if ! [ -d Win32Build ] || ! [ -d contrib ]; then
- echo "No Win32Build and/or no contrib directory here. Are we in the right place?" >&2
- exit 1
-fi
-
-rm -rf win_tmp
-mkdir win_tmp
-mkdir win_tmp/bin
-mkdir win_tmp/contrib
-mkdir win_tmp/doc
-mkdir win_tmp/doc/website
-mkdir win_tmp/doc/design-paper
-mkdir win_tmp/doc/contrib
-mkdir win_tmp/src
-mkdir win_tmp/src/config
-mkdir win_tmp/tmp
-
-cp Win32Build/vc7/Tor/Debug/Tor.exe win_tmp/bin/tor.exe
-cp Win32Build/vc7/tor_resolve/Debug/tor_resolve.exe win_tmp/bin
-cp ../c-windows-system32/libeay32.dll win_tmp/bin
-cp ../c-windows-system32/ssleay32.dll win_tmp/bin
-
-man2html doc/tor.1.in > win_tmp/tmp/tor-reference.html
-man2html doc/tor-resolve.1 > win_tmp/tmp/tor-resolve.html
-
-clean_newlines() {
- perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg;' $1 >$2
-}
-
-clean_localstatedir() {
- perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg; s{\@LOCALSTATEDIR\@/(lib|log)/tor/}{C:\\Documents and Settings\\Application Data\\Tor\\}' $1 >$2
-}
-
-for fn in \
- doc/HACKING \
- doc/control-spec.txt \
- doc/dir-spec.txt \
- doc/rend-spec.txt \
- doc/socks-extensions.txt \
- doc/tor-spec.txt \
- doc/version-spec.txt \
- \
- doc/website/* \
- ; do
- clean_newlines "$fn" win_tmp/"$fn"
-done
-mmv win_tmp/doc/website/"*.html.*" win_tmp/doc/website/"#1.#2.html"
-
-cp doc/design-paper/tor-design.pdf win_tmp/doc/design-paper/tor-design.pdf
-
-for fn in tor-reference.html tor-resolve.html; do \
- clean_newlines win_tmp/tmp/$fn win_tmp/doc/$fn
-done
-
-for fn in README AUTHORS ChangeLog LICENSE; do \
- clean_newlines $fn win_tmp/$fn
-done
-
-clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample
-
-cp contrib/tor.nsi.in win_tmp/contrib/tor.nsi
-(
- echo '/WEBSITE-FILES-HERE/'
- echo 'a' # append
- for fn in win_tmp/doc/website/*; do
- echo -n 'File "..\doc\website\'
- echo -n "`basename $fn`"
- echo '"'
- done
- echo "." # end input
- echo "w" # write
- echo "q" # quit
-) | ed win_tmp/contrib/tor.nsi
-
-cd win_tmp/contrib
-
-echo "Now run"
-echo ' t:'
-echo ' cd \tor\win_tmp\contrib'
-echo ' c:\programme\nsis\makensis tor.nsi'
-echo ' move tor-*.exe ../../..'
diff --git a/contrib/package_nsis.sh b/contrib/package_nsis.sh
deleted file mode 100644
index 863dfdff9..000000000
--- a/contrib/package_nsis.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-#
-# Script to package a Tor installer on win32. This script assumes that
-# you have already built Tor, that you are running cygwin, and that your
-# environment is basically exactly the same as Nick's.
-
-# This file is obsolete.
-
-rm -rf win_tmp
-mkdir win_tmp
-mkdir win_tmp/bin
-mkdir win_tmp/contrib
-mkdir win_tmp/doc
-mkdir win_tmp/doc/design-paper
-mkdir win_tmp/doc/contrib
-mkdir win_tmp/src
-mkdir win_tmp/src/config
-mkdir win_tmp/tmp
-
-cp Win32Build/vc7/Tor/Debug/Tor.exe win_tmp/bin/tor.exe
-cp Win32Build/vc7/tor_resolve/Debug/tor_resolve.exe win_tmp/bin
-cp c:/windows/system32/libeay32.dll win_tmp/bin
-cp c:/windows/system32/ssleay32.dll win_tmp/bin
-
-man2html doc/tor.1.in > win_tmp/tmp/tor-reference.html
-man2html doc/tor-resolve.1 > win_tmp/tmp/tor-resolve.html
-
-clean_newlines() {
- perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg;' $1 >$2
-}
-
-clean_localstatedir() {
- perl -pe 's/^\n$/\r\n/mg; s/([^\r])\n$/\1\r\n/mg; s{\@LOCALSTATEDIR\@/(lib|log)/tor/}{C:\\Documents and Settings\\Application Data\\Tor\\}' $1 >$2
-}
-
-for fn in tor-spec.txt HACKING rend-spec.txt control-spec.txt \
- tor-doc.html tor-doc.css version-spec.txt; do
- clean_newlines doc/$fn win_tmp/doc/$fn
-done
-
-cp doc/design-paper/tor-design.pdf win_tmp/doc/design-paper/tor-design.pdf
-
-for fn in tor-reference.html tor-resolve.html; do \
- clean_newlines win_tmp/tmp/$fn win_tmp/doc/$fn
-done
-
-for fn in README AUTHORS ChangeLog LICENSE; do \
- clean_newlines $fn win_tmp/$fn
-done
-
-clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample
-
-cp contrib/tor.nsi win_tmp/contrib
-
-cd win_tmp/contrib
-makensis tor.nsi
-mv tor-*.exe ../..
diff --git a/contrib/polipo/Makefile.mingw b/contrib/polipo/Makefile.mingw
deleted file mode 100644
index ddb20ec48..000000000
--- a/contrib/polipo/Makefile.mingw
+++ /dev/null
@@ -1,100 +0,0 @@
-PREFIX = Polipo
-BINDIR = $(PREFIX)\bin
-MANDIR = $(PREFIX)\man
-INFODIR = $(PREFIX)\info
-LOCAL_ROOT = $(PREFIX)
-DISK_CACHE_ROOT = $(PREFIX)\cache
-
-# To compile with Unix CC:
-
-# CDEBUGFLAGS=-O
-
-# To compile with GCC:
-
-# CC = gcc
-# CDEBUGFLAGS = -Os -g -Wall -std=gnu99
-CDEBUGFLAGS = -Os -g -Wall
-# CDEBUGFLAGS = -Os -Wall
-# CDEBUGFLAGS = -g -Wall
-
-# To compile on a pure POSIX system:
-
-# CC = c89
-# CC = c99
-# CDEBUGFLAGS=-O
-
-# To compile with icc 7, you need -restrict. (Their bug.)
-
-# CC=icc
-# CDEBUGFLAGS = -O -restrict
-
-# On System V (Solaris, HP/UX) you need the following:
-
-# PLATFORM_DEFINES = -DSVR4
-
-# On Solaris, you need the following:
-
-# LDLIBS = -lsocket -lnsl -lresolv
-
-# On mingw, you need
-
- EXE=.exe
- LDLIBS = -lwsock32 -lregex
-
-FILE_DEFINES = -DHAVE_REGEX
-
-# You may optionally also add any of the following to DEFINES:
-#
-# -DNO_DISK_CACHE to compile out the on-disk cache and local web server;
-# -DNO_IPv6 to avoid using the RFC 3493 API and stick to stock
-# Berkeley sockets;
-# -DHAVE_IPv6 to force the use of the RFC 3493 API on systems other
-# than GNU/Linux and BSD (let me know if it works);
-# -DNO_FANCY_RESOLVER to compile out the asynchronous name resolution
-# code;
-# -DNO_STANDARD_RESOLVER to compile out the code that falls back to
-# gethostbyname/getaddrinfo when DNS requests fail;
-# -DNO_TUNNEL to compile out the code that handles CONNECT requests;
-# -DNO_SOCKS to compile out the SOCKS gateway code.
-# -DNO_FORBIDDEN to compile out the all of the forbidden URL code
-# -DNO_REDIRECTOR to compile out the Squid-style redirector code
-# -DNO_SYSLOG to compile out logging to syslog
-
-DEFINES = $(FILE_DEFINES) $(PLATFORM_DEFINES)
-
-CFLAGS = $(MD5INCLUDES) $(CDEBUGFLAGS) $(DEFINES) $(EXTRA_DEFINES)
-
-SRCS = util.c event.c io.c chunk.c atom.c object.c log.c diskcache.c main.c \
- config.c local.c http.c client.c server.c auth.c tunnel.c \
- http_parse.c parse_time.c dns.c forbidden.c \
- md5import.c md5.c ftsimport.c fts_compat.c socks.c mingw.c
-
-OBJS = util.o event.o io.o chunk.o atom.o object.o log.o diskcache.o main.o \
- config.o local.o http.o client.o server.o auth.o tunnel.o \
- http_parse.o parse_time.o dns.o forbidden.o \
- md5import.o ftsimport.o socks.o mingw.o
-
-polipo$(EXE): $(OBJS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o polipo$(EXE) $(OBJS) $(MD5LIBS) $(LDLIBS)
-
-ftsimport.o: ftsimport.c fts_compat.c
-
-md5import.o: md5import.c md5.c
-
-.PHONY: all install install.binary install.man
-
-all: polipo$(EXE) polipo.info html/index.html localindex.html
-
-TAGS: $(SRCS)
- etags $(SRCS)
-
-.PHONY: clean
-
-clean:
- -rm -f polipo$(EXE) *.o *~ core TAGS gmon.out
- -rm -f polipo.cp polipo.fn polipo.log polipo.vr
- -rm -f polipo.cps polipo.info* polipo.pg polipo.toc polipo.vrs
- -rm -f polipo.aux polipo.dvi polipo.ky polipo.ps polipo.tp
- -rm -f polipo.dvi polipo.ps polipo.ps.gz polipo.pdf polipo.html
- -rm -rf ./html/
- -rm -f polipo.man.html
diff --git a/contrib/polipo/README b/contrib/polipo/README
deleted file mode 100644
index 1110ca273..000000000
--- a/contrib/polipo/README
+++ /dev/null
@@ -1,47 +0,0 @@
-Copyright 2007-2008, Andrew Lewman
-Copyright 2009-2011, The Tor Project
-
-----------------
-General Comments
-----------------
-
-These are some hacks for making polipo work and install a package native
-to Windows.
-
-They need some work before they can be committed upstream:
- - Change the Makefile so it has a specific build such as "make
- dist-win32"
- - Configure the options for tor in polipo config, just leave them
- commented out for easy activation.
- - Work out better polipo config options for Tor.
-
-As always, I'm happy to accept patches.
-
---------------------------
-Pre-requisites for Windows
---------------------------
-
-Polipo for Win32 requires the mingw gnu regex library and dlls at
-http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=73286&release_id=140957
-
-You'll need to download the -bin and -dev tarballs. And extract them
-into your MinGW directory.
-
-Instructions for building polipo under mingw32 for Windows:
-1) Copy Makefile.mingw over Makefile.
-2) Run 'make'.
-
-You should have a polipo.exe in the current directory.
-
--------------------------------------------
-Creating an installation package in Windows
--------------------------------------------
-
-If you want to build an installer using the Nullsoft Installer, install
-the NSI Compiler. In Windows Explorer, navigate to the directory in
-which you placed polipo-mingw.nsi. Right click on polipo-mingw.nsi and
-choose Compile NSIS Script. You'll then create a polipo installer.
-
-The Polipo NSI installer assumes libgnurx-0.dll is in the same directory as polipo.exe.
-You'll need to copy libgnurx-0.dll into "./" in order to make the
-installation package.
diff --git a/contrib/polipo/polipo-mingw.nsi b/contrib/polipo/polipo-mingw.nsi
deleted file mode 100644
index f119675eb..000000000
--- a/contrib/polipo/polipo-mingw.nsi
+++ /dev/null
@@ -1,172 +0,0 @@
-;polipo-mingw.nsi - A basic win32 installer for Polipo
-; Originally written by J Doe.
-; Modified by Andrew Lewman
-; This is licensed under a Modified BSD license.
-;-----------------------------------------
-;
-!include "MUI.nsh"
-
-!define VERSION "1.0.4.0-forbidden-1"
-!define INSTALLER "polipo-${VERSION}-win32.exe"
-!define WEBSITE "http://www.pps.jussieu.fr/~jch/software/polipo/"
-
-!define LICENSE "COPYING"
-;BIN is where it expects to find polipo.exe
-!define BIN "."
-
-SetCompressor lzma
-OutFile ${INSTALLER}
-InstallDir $PROGRAMFILES\Polipo
-SetOverWrite ifnewer
-
-Name "Polipo"
-Caption "Polipo ${VERSION} Setup"
-BrandingText "A Caching Web Proxy"
-CRCCheck on
-XPStyle on
-VIProductVersion "${VERSION}"
-VIAddVersionKey "ProductName" "Polipo: A caching web proxy"
-VIAddVersionKey "Comments" "http://www.pps.jussieu.fr/~jch/software/polipo/"
-VIAddVersionKey "LegalTrademarks" "See COPYING"
-VIAddVersionKey "LegalCopyright" "©2008, Juliusz Chroboczek"
-VIAddVersionKey "FileDescription" "Polipo is a caching web proxy."
-VIAddVersionKey "FileVersion" "${VERSION}"
-
-!define MUI_WELCOMEPAGE_TITLE "Welcome to the Polipo ${VERSION} Setup Wizard"
-!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Polipo ${VERSION}.\r\n\r\nIf you have previously installed Polipo and it is currently running, please exit Polipo first before continuing this installation.\r\n\r\n$_CLICK"
-!define MUI_ABORTWARNING
-!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\win-install.ico"
-!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\win-uninstall.ico"
-!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
-!define MUI_HEADERIMAGE
-;!define MUI_FINISHPAGE_RUN
-!define MUI_FINISHPAGE_LINK "Visit the Polipo website for the latest updates."
-!define MUI_FINISHPAGE_LINK_LOCATION ${WEBSITE}
-
-!insertmacro MUI_PAGE_WELCOME
-!insertmacro MUI_PAGE_COMPONENTS
-!insertmacro MUI_PAGE_DIRECTORY
-!insertmacro MUI_PAGE_INSTFILES
-!insertmacro MUI_PAGE_FINISH
-!insertmacro MUI_UNPAGE_WELCOME
-!insertmacro MUI_UNPAGE_CONFIRM
-!insertmacro MUI_UNPAGE_INSTFILES
-!insertmacro MUI_UNPAGE_FINISH
-!insertmacro MUI_LANGUAGE "English"
-
-Var configfile
-Var forbiddenfile
-
-;Sections
-;--------
-
-Section "Polipo" Polipo
-;Files that have to be installed for polipo to run and that the user
-;cannot choose not to install
- SectionIn RO
- SetOutPath $INSTDIR
- File "${BIN}\polipo.exe"
- File "${BIN}\COPYING"
- File "${BIN}\CHANGES"
- File "${BIN}\config.sample"
- File "${BIN}\forbidden.sample"
- File "${BIN}\README.Windows"
- File "${BIN}\libgnurx-0.dll"
- WriteIniStr "$INSTDIR\Polipo Website.url" "InternetShortcut" "URL" ${WEBSITE}
-
- StrCpy $configfile "config"
- StrCpy $forbiddenfile "forbidden"
- SetOutPath $INSTDIR
- ;If there's already a polipo config file, ask if they want to
- ;overwrite it with the new one.
- IfFileExists "$INSTDIR\config" "" endifconfig
- MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Polipo config file.$\r$\nDo you want to overwrite it with the default sample config file?" IDNO yesreplace
- Delete $INSTDIR\config
- Goto endifconfig
- yesreplace:
- StrCpy $configfile ".\config.sample"
- endifconfig:
- File /oname=$configfile ".\config.sample"
- ;If there's already a polipo forbidden file, ask if they want to
- ;overwrite it with the new one.
- IfFileExists "$INSTDIR\forbidden" "" endifforbidden
- MessageBox MB_ICONQUESTION|MB_YESNO "You already have a Polipo forbidden file.$\r$\nDo you want to overwrite it with the default sample forbidden file?" IDNO forbidyesreplace
- Delete $INSTDIR\forbidden
- Goto endifforbidden
- forbidyesreplace:
- StrCpy $forbiddenfile ".\forbidden.sample"
- endifforbidden:
- File /oname=$forbiddenfile ".\forbidden.sample"
- IfFileExists "$INSTDIR\bin\*.*" "" endifbinroot
- CreateDirectory "$INSTDIR\bin"
- endifbinroot:
- CopyFiles "${BIN}\localindex.html" $INSTDIR\index.html
- IfFileExists "$INSTDIR\cache\*.*" "" endifcache
- CreateDirectory "$INSTDIR\cache"
- endifcache:
-SectionEnd
-
-SubSection /e "Shortcuts" Shortcuts
-
-Section "Start Menu" StartMenu
- SetOutPath $INSTDIR
- IfFileExists "$SMPROGRAMS\Polipo\*.*" "" +2
- RMDir /r "$SMPROGRAMS\Polipo"
- CreateDirectory "$SMPROGRAMS\Polipo"
- CreateShortCut "$SMPROGRAMS\Polipo\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config"
- CreateShortCut "$SMPROGRAMS\Polipo\Poliporc.lnk" "Notepad.exe" "$INSTDIR\config"
- CreateShortCut "$SMPROGRAMS\Polipo\Polipo Documentation.lnk" "$INSTDIR\www\index.html"
- CreateShortCut "$SMPROGRAMS\Polipo\Polipo Website.lnk" "$INSTDIR\Polipo Website.url"
- CreateShortCut "$SMPROGRAMS\Polipo\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-SectionEnd
-
-Section "Desktop" Desktop
- SetOutPath $INSTDIR
- CreateShortCut "$DESKTOP\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config"
-SectionEnd
-
-Section /o "Run at startup" Startup
- SetOutPath $INSTDIR
- CreateShortCut "$SMSTARTUP\Polipo.lnk" "$INSTDIR\polipo.exe" "-c config -f forbidden" "" "" "" SW_SHOWMINIMIZED
-SectionEnd
-
-SubSectionEnd
-
-Section "Uninstall"
- Delete "$DESKTOP\Polipo.lnk"
- Delete "$INSTDIR\polipo.exe"
- Delete "$INSTDIR\Polipo Website.url"
- Delete "$INSTDIR\config"
- Delete "$INSTDIR\config.sample"
- Delete "$INSTDIR\forbidden.sample"
- Delete "$INSTDIR\libgnurx-0.dll"
- Delete "$INSTDIR\COPYING"
- Delete "$INSTDIR\CHANGES"
- Delete "$INSTDIR\README.Windows"
- StrCmp $INSTDIR $INSTDIR +2 ""
- RMDir /r $INSTDIR
- Delete "$INSTDIR\Uninstall.exe"
- RMDir /r "$INSTDIR\Documents"
- RMDir $INSTDIR
- RMDir /r "$SMPROGRAMS\Polipo"
- RMDir /r "$APPDATA\Polipo"
- Delete "$SMSTARTUP\Polipo.lnk"
- DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Polipo"
-SectionEnd
-
-Section -End
- WriteUninstaller "$INSTDIR\Uninstall.exe"
- ;The registry entries simply add the Polipo uninstaller to the Windows
- ;uninstall list.
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Polipo" "DisplayName" "Polipo (remove only)"
- WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Polipo" "UninstallString" '"$INSTDIR\Uninstall.exe"'
-SectionEnd
-
-!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${Polipo} "The core executable and config files needed for Polipo to run."
- !insertmacro MUI_DESCRIPTION_TEXT ${ShortCuts} "Shortcuts to easily start Polipo"
- !insertmacro MUI_DESCRIPTION_TEXT ${StartMenu} "Shortcuts to access Polipo and its documentation from the Start Menu"
- !insertmacro MUI_DESCRIPTION_TEXT ${Desktop} "A shortcut to start Polipo from the desktop"
- !insertmacro MUI_DESCRIPTION_TEXT ${Startup} "Launches Polipo automatically at startup in a minimized window"
-!insertmacro MUI_FUNCTION_DESCRIPTION_END
-
diff --git a/contrib/redox.py b/contrib/redox.py
deleted file mode 100755
index 550f84686..000000000
--- a/contrib/redox.py
+++ /dev/null
@@ -1,228 +0,0 @@
-#!/usr/bin/python
-#
-# Copyright (c) 2008-2013, The Tor Project, Inc.
-# See LICENSE for licensing information.
-#
-# Hi!
-# I'm redox.py, the Tor redocumentation tool!
-# I am a horrible hack!
-# I read the output of doxygen from stderr, and add missing DOCDOC comments
-# to tell you where documentation should go!
-# To use me, edit the stuff below...
-# ...and run 'make doxygen 2>doxygen.stderr' ...
-# ...and run ./contrib/redox.py < doxygen.stderr !
-# I'll make a bunch of new files by adding missing DOCDOC comments to your
-# source. Those files will have names like ./src/common/util.c.newdoc.
-# You will want to look over the changes by hand before checking them in.
-#
-# So, here's your workflow:
-#
-# 0. Make sure you're running a bourne shell for the redirects below.
-# 1. make doxygen 1>doxygen.stdout 2>doxygen.stderr.
-# 2. grep Warning doxygen.stderr | grep -v 'is not documented' | less
-# [This will tell you about all the bogus doxygen output you have]
-# 3. python ./contrib/redox.py <doxygen.stderr
-# [This will make lots of .newdoc files with DOCDOC comments for
-# whatever was missing documentation.]
-# 4. Look over those .newdoc files, and see which docdoc comments you
-# want to merge into the main file. If it's all good, just run
-# "mv fname.c.newdoc fname.c". Otherwise, you'll need to merge
-# the parts you like by hand.
-
-# Which files should we ignore warning from? Mostly, these are external
-# files that we've snarfed in from somebody else, whose C we do no intend
-# to document for them.
-SKIP_FILES = [ "OpenBSD_malloc_Linux.c",
- "eventdns.c",
- "eventdns.h",
- "strlcat.c",
- "strlcpy.c",
- "sha256.c",
- "sha256.h",
- "aes.c",
- "aes.h" ]
-
-# What names of things never need javadoc
-SKIP_NAME_PATTERNS = [ r'^.*_c_id$',
- r'^.*_H_ID$' ]
-
-# Which types of things should get DOCDOC comments added if they are
-# missing documentation? Recognized types are in KINDS below.
-ADD_DOCDOCS_TO_TYPES = [ 'function', 'type', 'typedef' ]
-ADD_DOCDOCS_TO_TYPES += [ 'variable', ]
-
-# ====================
-# The rest of this should not need hacking.
-
-import re
-import sys
-
-KINDS = [ "type", "field", "typedef", "define", "function", "variable",
- "enumeration" ]
-
-NODOC_LINE_RE = re.compile(r'^([^:]+):(\d+): (\w+): (.*) is not documented\.$')
-
-THING_RE = re.compile(r'^Member ([a-zA-Z0-9_]+).*\((typedef|define|function|variable|enumeration|macro definition)\) of (file|class) ')
-
-SKIP_NAMES = [re.compile(s) for s in SKIP_NAME_PATTERNS]
-
-def parsething(thing):
- """I figure out what 'foobar baz in quux quum is not documented' means,
- and return: the name of the foobar, and the kind of the foobar.
- """
- if thing.startswith("Compound "):
- tp, name = "type", thing.split()[1]
- else:
- m = THING_RE.match(thing)
- if not m:
- print thing, "???? Format didn't match."
- return None, None
- else:
- name, tp, parent = m.groups()
- if parent == 'class':
- if tp == 'variable' or tp == 'function':
- tp = 'field'
-
- return name, tp
-
-def read():
- """I snarf doxygen stderr from stdin, and parse all the "foo has no
- documentation messages. I return a map from filename to lists
- of tuples of (alleged line number, name of thing, kind of thing)
- """
- errs = {}
- for line in sys.stdin:
- m = NODOC_LINE_RE.match(line)
- if m:
- file, line, tp, thing = m.groups()
- assert tp.lower() == 'warning'
- name, kind = parsething(thing)
- errs.setdefault(file, []).append((int(line), name, kind))
-
- return errs
-
-def findline(lines, lineno, ident):
- """Given a list of all the lines in the file (adjusted so 1-indexing works),
- a line number that ident is alledgedly on, and ident, I figure out
- the line where ident was really declared."""
- lno = lineno
- for lineno in xrange(lineno, 0, -1):
- try:
- if ident in lines[lineno]:
- return lineno
- except IndexError:
- continue
-
- return None
-
-FUNC_PAT = re.compile(r"^[A-Za-z0-9_]+\(")
-
-def hascomment(lines, lineno, kind):
- """I return true if it looks like there's already a good comment about
- the thing on lineno of lines of type kind. """
- if "*/" in lines[lineno-1]:
- return True
- if kind == 'function' and FUNC_PAT.match(lines[lineno]):
- if "*/" in lines[lineno-2]:
- return True
- return False
-
-def hasdocdoc(lines, lineno, kind):
- """I return true if it looks like there's already a docdoc comment about
- the thing on lineno of lines of type kind."""
- try:
- if "DOCDOC" in lines[lineno]:
- return True
- except IndexError:
- pass
- try:
- if "DOCDOC" in lines[lineno-1]:
- return True
- except IndexError:
- pass
- if kind == 'function' and FUNC_PAT.match(lines[lineno]):
- if "DOCDOC" in lines[lineno-2]:
- return True
- return False
-
-def checkf(fn, errs):
- """I go through the output of read() for a single file, and build a list
- of tuples of things that want DOCDOC comments. Each tuple has:
- the line number where the comment goes; the kind of thing; its name.
- """
- for skip in SKIP_FILES:
- if fn.endswith(skip):
- print "Skipping",fn
- return
-
- comments = []
- lines = [ None ]
- try:
- lines.extend( open(fn, 'r').readlines() )
- except IOError:
- return
-
- for line, name, kind in errs:
- if any(pat.match(name) for pat in SKIP_NAMES):
- continue
-
- if kind not in ADD_DOCDOCS_TO_TYPES:
- continue
-
- ln = findline(lines, line, name)
- if ln == None:
- print "Couldn't find the definition of %s allegedly on %s of %s"%(
- name, line, fn)
- else:
- if hasdocdoc(lines, line, kind):
-# print "Has a DOCDOC"
-# print fn, line, name, kind
-# print "\t",lines[line-2],
-# print "\t",lines[line-1],
-# print "\t",lines[line],
-# print "-------"
- pass
- else:
- if kind == 'function' and FUNC_PAT.match(lines[ln]):
- ln = ln - 1
-
- comments.append((ln, kind, name))
-
- return comments
-
-def applyComments(fn, entries):
- """I apply lots of comments to the file in fn, making a new .newdoc file.
- """
- N = 0
-
- lines = [ None ]
- try:
- lines.extend( open(fn, 'r').readlines() )
- except IOError:
- return
-
- # Process the comments in reverse order by line number, so that
- # the line numbers for the ones we haven't added yet remain valid
- # until we add them. Standard trick.
- entries.sort()
- entries.reverse()
-
- for ln, kind, name in entries:
-
- lines.insert(ln, "/* DOCDOC %s */\n"%name)
- N += 1
-
- outf = open(fn+".newdoc", 'w')
- for line in lines[1:]:
- outf.write(line)
- outf.close()
-
- print "Added %s DOCDOCs to %s" %(N, fn)
-
-e = read()
-
-for fn, errs in e.iteritems():
- print `(fn, errs)`
- comments = checkf(fn, errs)
- if comments:
- applyComments(fn, comments)
diff --git a/contrib/scan-build.sh b/contrib/scan-build.sh
deleted file mode 100644
index 623b227fe..000000000
--- a/contrib/scan-build.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-# Copyright 2014 The Tor Project, Inc
-# See LICENSE for licensing information
-#
-# This script is used for running a bunch of clang scan-build checkers
-# on Tor.
-#
-# It has hardwired paths for Nick's desktop at the moment.
-
-CHECKERS="\
- --use-analyzer=/opt/clang-3.4/bin/clang \
- -disable-checker deadcode.DeadStores \
- -enable-checker alpha.core.CastSize \
- -enable-checker alpha.core.CastToStruct \
- -enable-checker alpha.core.IdenticalExpr \
- -enable-checker alpha.core.SizeofPtr \
- -enable-checker alpha.security.ArrayBoundV2 \
- -enable-checker alpha.security.MallocOverflow \
- -enable-checker alpha.security.ReturnPtrRange \
- -enable-checker alpha.unix.SimpleStream
- -enable-checker alpha.unix.cstring.BufferOverlap \
- -enable-checker alpha.unix.cstring.NotNullTerminated \
- -enable-checker alpha.unix.cstring.OutOfBounds \
- -enable-checker alpha.core.FixedAddr \
- -enable-checker security.insecureAPI.strcpy
-"
-
-/opt/clang-3.4/bin/scan-build/scan-build \
- $CHECKERS \
- --use-analyzer=/opt/clang-3.4/bin/clang \
- ./configure
-
-/opt/clang-3.4/bin/scan-build/scan-build \
- $CHECKERS \
- --use-analyzer=/opt/clang-3.4/bin/clang \
- make -j2
-
-
-# Haven't tried this yet.
-# -enable-checker alpha.unix.PthreadLock
-
-# This one gives a false positive on every strcmp.
-# -enable-checker alpha.core.PointerSub
-
-# This one hates it when we stick a nonzero const in a pointer.
-# -enable-checker alpha.core.FixedAddr
-
-# This one crashes sometimes for me.
-# -enable-checker alpha.deadcode.IdempotentOperations
diff --git a/contrib/sd b/contrib/sd
deleted file mode 100755
index 232e8accd..000000000
--- a/contrib/sd
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader <peter@palfrader.org>
-# Copyright (c) 2008, 2009 Jacob Appelbaum <jacob@appelbaum.net>
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# This small script fetches information about a server when given a nickname.
-# It currently uses the v2 dir information and not the v3 consensus by default.
-# It requires wget, perl, awk to function properly. This is based on a zsh
-# dotfile from weasel and adapted to be a small bash utility.
-#
-
-# Feel free to set any authority you desire, we're using weasel's by default
-# You could also try the v3 directory infomation in weasel's dir authority:
-# http://tor.noreply.org/tor/status-vote/current/consensus
-#
-
-# Users can select between the two
-v3authority="http://tor.noreply.org/tor/status-vote/current/consensus";
-v2authority="http://tor.noreply.org:80/tor/status/authority";
-authority=$v2authority;
-
-function usage {
- echo "Usage: $0 [-2|-3] nodenickname";
-}
-
-if [ -z "$1" ];
-then
- usage;
- exit;
-fi
-
-# Are we switching between v2 or v3?
-if [ "$1" == "-2" -o "$1" == "-3" ];
-then
- if [ "$1" == "-2" -a -n "$2" ];
- then
- authority=$v2authority;
- nickname="$2";
- elif [ "$1" == "-3" -a -n "$2" ];
- then
- authority=$v3authority;
- nickname="$2";
- else
- usage;
- exit;
- fi
-else
- nickname="$1";
-fi
-
-# Fetch it and decode the fingerprint
-fp=`wget -q -O - $authority | \
- awk '$1 == "r" && $2 == "'$nickname'" {printf "%s===", $3}' | \
- perl -MMIME::Base64 -e "print unpack(\"H*\", decode_base64(<>)),\"\n\"";`
-
-# If we don't have a fingerprint, we don't have a match
-if [ "$fp" != "" ];
-then
- wget -q -O - http://tor.noreply.org:80/tor/server/fp/$fp;
- exit $?;
-else
- echo "It appears the nickname is not currently known by the directory" \
- "authority."
- exit 1;
-fi
diff --git a/contrib/tor-ctrl.sh b/contrib/tor-ctrl.sh
deleted file mode 100644
index 58320ced1..000000000
--- a/contrib/tor-ctrl.sh
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/bash
-#
-# tor-ctrl is a commandline tool for executing commands on a tor server via
-# the controlport. In order to get this to work, add "ControlPort 9051" and
-# "CookieAuthentication 1" to your torrc and reload tor. Or - if you want a
-# fixed password - leave out "CookieAuthentication 1" and use the following
-# line to create the appropriate HashedControlPassword entry for your torrc
-# (you need to change yourpassword, of course):
-#
-# echo "HashedControlPassword $(tor --hash-password yourpassword | tail -n 1)"
-#
-# tor-ctrl will return 0 if it was successful and 1 if not, 2 will be returned
-# if something (telnet, xxd) is missing. 4 will be returned if it executed
-# several commands from a file.
-#
-# For setting the bandwidth for specific times of the day, I suggest calling
-# tor-ctrl via cron, e.g.:
-#
-# 0 22 * * * /path/to/tor-ctrl -c "SETCONF bandwidthrate=1mb"
-# 0 7 * * * /path/to/tor-ctrl -c "SETCONF bandwidthrate=100kb"
-#
-# This would set the bandwidth to 100kb at 07:00 and to 1mb at 22:00. You can
-# use notations like 1mb, 1kb or the number of bytes.
-#
-# Many, many other things are possible, see
-# https://www.torproject.org/svn/trunk/doc/spec/control-spec.txt
-#
-# Copyright (c) 2007 by Stefan Behte
-#
-# tor-ctrl is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# tor-ctrl is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with tor-ctrl; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-# Written by Stefan Behte
-#
-# Please send bugs, comments, wishes, thanks and success stories to:
-# Stefan dot Behte at gmx dot net
-#
-# Also have a look at my page:
-# http://ge.mine.nu/
-#
-# 2007-10-03: First version, only changing bandwidth possible.
-# 2007-10-04: Renaming to "tor-ctrl", added a lot of functions, it's now a
-# general-purpose tool.
-# Added control_auth_cookie/controlpassword auth, getopts,
-# program checks, reading from file etc.
-
-VERSION=v1
-TORCTLIP=127.0.0.1
-TORCTLPORT=9051
-TOR_COOKIE="/var/lib/tor/data/control_auth_cookie"
-SLEEP_AFTER_CMD=1
-VERBOSE=0
-
-usage()
-{
-cat <<EOF
-
-tor-ctrl $VERSION by Stefan Behte (http://ge.mine.nu)
-You should have a look at
-https://www.torproject.org/svn/trunk/doc/spec/control-spec.txt
-
-usage: tor-ctrl [-switch] [variable]
-
- [-c] [command] = command to execute
- notice: always "quote" your command
-
- [-f] [file] = file to execute commands from
- notice: only one command per line
-
- [-a] [path] = path to tor's control_auth_cookie
- default: /var/lib/tor/data/control_auth_cookie
- notice: do not forget to adjust your torrc
-
- [-s] [time] = sleep [var] seconds after each command sent
- default: 1 second
- notice: for GETCONF, you can use smaller pause times
- than for SETCONF; this is due to telnet's behaviour.
-
- [-p] [pwd] = Use password [var] instead of tor's control_auth_cookie
- default: not used
- notice: do not forget to adjust your torrc
-
- [-P] [port] = Tor ControlPort
- default: 9051
-
- [-v] = verbose
- default: not set
- notice: the default output is the return code ;)
- You propably want to set -v when running manually
-
- Examples: $0 -c "SETCONF bandwidthrate=1mb"
- $0 -v -c "GETINFO version"
- $0 -v -s 0 -P 9051 -p foobar -c "GETCONF bandwidthrate"
-
-EOF
-exit 2
-}
-
-checkprogs()
-{
- programs="telnet"
- if [ "$PASSWORD" = "" ]
- then
- # you only need xxd when using control_auth_cookie
- programs="$programs xxd"
- fi
-
- for p in $programs
- do
- which $p &>/dev/null # are you there?
- if [ "$?" != "0" ]
- then
- echo "$p is missing."
- exit 2
- fi
- done
-}
-
-sendcmd()
-{
- echo "$@"
- sleep ${SLEEP_AFTER_CMD}
-}
-
-login()
-{
- if [ "$PASSWORD" = "" ]
- then
- sendcmd "AUTHENTICATE $(xxd -c 32 -g 0 ${TOR_COOKIE} | awk '{print $2}')"
- else
- sendcmd "AUTHENTICATE \"${PASSWORD}\""
- fi
-}
-
-cmdpipe()
-{
- login
- sendcmd "$@"
- sendcmd "QUIT"
-}
-
-vecho()
-{
- if [ $VERBOSE -ge 1 ]
- then
- echo "$@"
- fi
-}
-
-myecho()
-{
- STR=$(cat)
- vecho "$STR"
-
- echo "$STR" | if [ "$(grep -c ^"250 ")" = 3 ]
- then
- exit 0
- else
- exit 1
- fi
-}
-
-filepipe()
-{
- login
- cat "$1" | while read line
- do
- sendcmd "$line"
- done
- sendcmd "QUIT"
-}
-
-while getopts ":a:c:s:p:P:f:vh" Option
-do
- case $Option in
- a) TOR_COOKIE="${OPTARG}";;
- c) CMD="${OPTARG}";;
- s) SLEEP_AFTER_CMD="${OPTARG}";;
- p) PASSWORD="${OPTARG}";;
- P) TORCTLPORT="${OPTARG}";;
- f) FILE="${OPTARG}";;
- v) VERBOSE=1;;
- h) usage;;
- *) usage;;
- esac
-done
-
-if [ -e "$FILE" ]
-then
- checkprogs
- filepipe "$FILE" | telnet $TORCTLIP $TORCTLPORT 2>/dev/null | myecho
- exit 4
-fi
-
-if [ "$CMD" != "" ]
-then
- checkprogs
- cmdpipe $CMD | telnet $TORCTLIP $TORCTLPORT 2>/dev/null | myecho
-else
- usage
-fi
diff --git a/contrib/tor-stress b/contrib/tor-stress
deleted file mode 100755
index a0c88c2fd..000000000
--- a/contrib/tor-stress
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/perl
-
-#require 'sys/syscall.ph';
-$|=1;
-
-$total = 1;
-$target = "http://www.cnn.com/";
-
-for($i=0;$i<$total;$i++) {
- print "Starting client $i\n";
- $pid = fork();
- if(!$pid) {
- open(FD,"wget -q -O - $target|");
- $c = 0;
- while(<FD>) {
- $c += length($_);
- }
-# $TIMEVAL_T = "LL";
-# $now = pack($TIMEVAL_T, ());
-# syscall(&SYS_gettimeofday, $now, 0) != -1 or die "gettimeofday: $!";
-# @now = unpack($TIMEVAL_T, $now);
- print "Client $i exiting ($c chars).\n";
- exit(0);
- }
-# sleep(1);
-}
-
diff --git a/contrib/torinst32.ico b/contrib/torinst32.ico
deleted file mode 100644
index ccbad9b15..000000000
--- a/contrib/torinst32.ico
+++ /dev/null
Binary files differ
diff --git a/contrib/updateVersions.pl b/contrib/updateVersions.pl
deleted file mode 100755
index 9dae1ff95..000000000
--- a/contrib/updateVersions.pl
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/perl -w
-
-$CONFIGURE_IN = './configure.ac';
-$ORCONFIG_H = './src/win32/orconfig.h';
-$TOR_NSI = './contrib/tor-mingw.nsi.in';
-
-$quiet = 1;
-
-sub demand {
- my $fn = shift;
- die "Missing file $fn" unless (-f $fn);
-}
-
-demand($CONFIGURE_IN);
-demand($ORCONFIG_H);
-demand($TOR_NSI);
-
-# extract version from configure.ac
-
-open(F, $CONFIGURE_IN) or die "$!";
-$version = undef;
-while (<F>) {
- if (/AC_INIT\(\[tor\],\s*\[([^\]]*)\]\)/) {
- $version = $1;
- last;
- }
-}
-die "No version found" unless $version;
-print "Tor version is $version\n" unless $quiet;
-close F;
-
-sub correctversion {
- my ($fn, $defchar) = @_;
- undef $/;
- open(F, $fn) or die "$!";
- my $s = <F>;
- close F;
- if ($s =~ /^$defchar(?:)define\s+VERSION\s+\"([^\"]+)\"/m) {
- $oldver = $1;
- if ($oldver ne $version) {
- print "Version mismatch in $fn: It thinks that the version is $oldver. I think it's $version. Fixing.\n";
- $line = $defchar . "define VERSION \"$version\"";
- open(F, ">$fn.bak");
- print F $s;
- close F;
- $s =~ s/^$defchar(?:)define\s+VERSION.*?$/$line/m;
- open(F, ">$fn");
- print F $s;
- close F;
- } else {
- print "$fn has the correct version. Good.\n" unless $quiet;
- }
- } else {
- print "Didn't find a version line in $fn -- uh oh.\n";
- }
-}
-
-correctversion($TOR_NSI, "!");
-correctversion($ORCONFIG_H, "#");
diff --git a/contrib/package_nsis-mingw.sh b/contrib/win32build/package_nsis-mingw.sh
index b8a46cdbe..b8a46cdbe 100644
--- a/contrib/package_nsis-mingw.sh
+++ b/contrib/win32build/package_nsis-mingw.sh
diff --git a/contrib/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in
index 0e1594dd3..0e1594dd3 100644
--- a/contrib/tor-mingw.nsi.in
+++ b/contrib/win32build/tor-mingw.nsi.in
diff --git a/contrib/tor.ico b/contrib/win32build/tor.ico
index 0cac29704..0cac29704 100644
--- a/contrib/tor.ico
+++ b/contrib/win32build/tor.ico
Binary files differ
diff --git a/contrib/tor.nsi.in b/contrib/win32build/tor.nsi.in
index dd24df454..dd24df454 100644
--- a/contrib/tor.nsi.in
+++ b/contrib/win32build/tor.nsi.in
diff --git a/contrib/xenobite.ico b/contrib/xenobite.ico
deleted file mode 100644
index 352394eef..000000000
--- a/contrib/xenobite.ico
+++ /dev/null
Binary files differ