diff --git a/.gitignore b/.gitignore index 35a6c00106..71737cf1ba 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ *.bak # Python droppings *.pyc +*.pyo # / /Makefile @@ -60,20 +61,10 @@ /tor-*-win32.exe # /contrib/ -/contrib/Makefile -/contrib/Makefile.in -/contrib/tor.sh -/contrib/torctl -/contrib/torify -/contrib/*.pyc -/contrib/*.pyo -/contrib/tor.logrotate -/contrib/tor.wxs - -# /contrib/suse/ -/contrib/suse/tor.sh -/contrib/suse/Makefile.in -/contrib/suse/Makefile +/contrib/dist/tor.sh +/contrib/dist/torctl +/contrib/operator-tools/tor.logrotate +/contrib/dist/suse/tor.sh # /debian/ /debian/files diff --git a/Makefile.am b/Makefile.am index 0361d87cec..6eceb761f4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -77,7 +77,7 @@ reset-gcov: # Avoid strlcpy.c, strlcat.c, aes.c, OpenBSD_malloc_Linux.c, sha256.c, # eventdns.[hc], tinytest*.[ch] check-spaces: - ./contrib/checkSpace.pl -C \ + ./scripts/maint/checkSpace.pl -C \ src/common/*.[ch] \ src/or/*.[ch] \ src/test/*.[ch] \ @@ -85,10 +85,10 @@ check-spaces: src/tools/tor-fw-helper/*.[ch] check-docs: - ./contrib/checkOptionDocs.pl + ./scripts/maint/checkOptionDocs.pl check-logs: - ./contrib/checkLogs.pl \ + ./scripts/maint/checkLogs.pl \ src/*/*.[ch] | sort -n version: diff --git a/changes/ticket8966 b/changes/ticket8966 new file mode 100644 index 0000000000..d6967a4e30 --- /dev/null +++ b/changes/ticket8966 @@ -0,0 +1,7 @@ + o Package cleanup: + - The contrib directory has been sorted and tidy. Before, it was an + unsorted dumping ground for useful and not-so-useful things. Now, + it has been divided based on functionality, and the items which + seemed to be nonfunctional or useless have been removed. Resolves + ticket 8966; based on patches from "rl1987". + diff --git a/configure.ac b/configure.ac index edfe2f8e9a..f921dd503f 100644 --- a/configure.ac +++ b/configure.ac @@ -1557,10 +1557,10 @@ CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent $TOR_CPPFLAGS_openssl $TOR_CPPFLAGS_z AC_CONFIG_FILES([ Doxyfile Makefile - contrib/suse/tor.sh - contrib/tor.logrotate - contrib/tor.sh - contrib/torctl + contrib/dist/suse/tor.sh + contrib/operator-tools/tor.logrotate + contrib/dist/tor.sh + contrib/dist/torctl src/config/torrc.sample ]) @@ -1582,6 +1582,6 @@ fi AC_OUTPUT -if test -x /usr/bin/perl && test -x ./contrib/updateVersions.pl ; then - ./contrib/updateVersions.pl +if test -x /usr/bin/perl && test -x ./scripts/maint/updateVersions.pl ; then + ./scripts/maint/updateVersions.pl fi diff --git a/contrib/auto-naming/README b/contrib/auto-naming/README deleted file mode 100644 index e2f9ff8c2a..0000000000 --- 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 55f6b5fa30..0000000000 --- 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/tor-resolve.py b/contrib/client-tools/tor-resolve.py similarity index 100% rename from contrib/tor-resolve.py rename to contrib/client-tools/tor-resolve.py diff --git a/contrib/torify b/contrib/client-tools/torify similarity index 100% rename from contrib/torify rename to contrib/client-tools/torify diff --git a/contrib/cross.sh b/contrib/cross.sh deleted file mode 100755 index a6085a400f..0000000000 --- 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 similarity index 100% rename from contrib/add-tor rename to contrib/dirauth-tools/add-tor diff --git a/contrib/nagios-check-tor-authority-cert b/contrib/dirauth-tools/nagios-check-tor-authority-cert similarity index 100% rename from contrib/nagios-check-tor-authority-cert rename to 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 e2821aa938..0000000000 --- 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 dfa5a1b3e5..0000000000 --- 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 a9335bda7b..0000000000 --- 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 a4746e02cf..0000000000 --- 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 95033c58df..0000000000 --- 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 2775ca9ee9..0000000000 --- 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 " >&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 similarity index 100% rename from contrib/rc.subr rename to contrib/dist/rc.subr diff --git a/contrib/suse/tor.sh.in b/contrib/dist/suse/tor.sh.in similarity index 100% rename from contrib/suse/tor.sh.in rename to contrib/dist/suse/tor.sh.in diff --git a/contrib/tor.sh.in b/contrib/dist/tor.sh.in similarity index 100% rename from contrib/tor.sh.in rename to contrib/dist/tor.sh.in diff --git a/contrib/torctl.in b/contrib/dist/torctl.in similarity index 100% rename from contrib/torctl.in rename to contrib/dist/torctl.in diff --git a/contrib/include.am b/contrib/include.am index 62b76ebeb9..0120798614 100644 --- a/contrib/include.am +++ b/contrib/include.am @@ -1,18 +1,16 @@ -include contrib/suse/include.am EXTRA_DIST+= \ - contrib/cross.sh \ - contrib/exitlist \ - contrib/linux-tor-prio.sh \ - contrib/package_nsis-mingw.sh \ - contrib/rc.subr \ - contrib/tor-ctrl.sh \ - contrib/tor-exit-notice.html \ - contrib/tor-mingw.nsi.in \ - contrib/tor.ico \ - contrib/tor.nsi.in \ - contrib/tor.sh \ - contrib/torify \ - contrib/torctl + contrib/client-tools/torify \ + contrib/dist/rc.subr \ + contrib/dist/suse/tor.sh.in \ + contrib/dist/tor.sh \ + contrib/dist/torctl \ + contrib/operator-tools/linux-tor-prio.sh \ + contrib/operator-tools/tor-exit-notice.html \ + contrib/or-tools/exitlist \ + contrib/win32build/package_nsis-mingw.sh \ + contrib/win32build/tor-mingw.nsi.in \ + contrib/win32build/tor.ico \ + contrib/win32build/tor.nsi.in -bin_SCRIPTS+= contrib/torify +bin_SCRIPTS+= contrib/client-tools/torify diff --git a/contrib/make-signature.sh b/contrib/make-signature.sh deleted file mode 100755 index 4aba08b754..0000000000 --- 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 <", 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 08d950ab04..0000000000 --- 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 similarity index 100% rename from contrib/linux-tor-prio.sh rename to contrib/operator-tools/linux-tor-prio.sh diff --git a/contrib/tor-exit-notice.html b/contrib/operator-tools/tor-exit-notice.html similarity index 100% rename from contrib/tor-exit-notice.html rename to contrib/operator-tools/tor-exit-notice.html diff --git a/contrib/tor.logrotate.in b/contrib/operator-tools/tor.logrotate.in similarity index 100% rename from contrib/tor.logrotate.in rename to contrib/operator-tools/tor.logrotate.in diff --git a/contrib/check-tor b/contrib/or-tools/check-tor similarity index 100% rename from contrib/check-tor rename to contrib/or-tools/check-tor diff --git a/contrib/checksocks.pl b/contrib/or-tools/checksocks.pl similarity index 100% rename from contrib/checksocks.pl rename to contrib/or-tools/checksocks.pl diff --git a/contrib/exitlist b/contrib/or-tools/exitlist similarity index 100% rename from contrib/exitlist rename to contrib/or-tools/exitlist diff --git a/contrib/package_nsis-weasel.sh b/contrib/package_nsis-weasel.sh deleted file mode 100755 index 8dd4948527..0000000000 --- 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 863dfdff9d..0000000000 --- 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 ddb20ec48a..0000000000 --- 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 1110ca2731..0000000000 --- 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 f119675eba..0000000000 --- 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/sd b/contrib/sd deleted file mode 100755 index 232e8accde..0000000000 --- a/contrib/sd +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash -# -# Copyright (c) 2005, 2006, 2007, 2008 Peter Palfrader -# Copyright (c) 2008, 2009 Jacob Appelbaum -# -# 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/suse/include.am b/contrib/suse/include.am deleted file mode 100644 index 4aed0e123e..0000000000 --- a/contrib/suse/include.am +++ /dev/null @@ -1 +0,0 @@ -EXTRA_DIST+= contrib/suse/tor.sh diff --git a/contrib/tor-ctrl.sh b/contrib/tor-ctrl.sh deleted file mode 100644 index 58320ced12..0000000000 --- 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 </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 a0c88c2fdd..0000000000 --- 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() { - $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 ccbad9b152..0000000000 Binary files a/contrib/torinst32.ico and /dev/null differ diff --git a/contrib/package_nsis-mingw.sh b/contrib/win32build/package_nsis-mingw.sh similarity index 95% rename from contrib/package_nsis-mingw.sh rename to contrib/win32build/package_nsis-mingw.sh index b8a46cdbee..cae862b919 100644 --- a/contrib/package_nsis-mingw.sh +++ b/contrib/win32build/package_nsis-mingw.sh @@ -40,7 +40,7 @@ # you know what you are doing. # Start in the tor source directory after you've compiled tor.exe -# This means start as ./contrib/package_nsis-mingw.sh +# This means start as ./contrib/win32build/package_nsis-mingw.sh rm -rf win_tmp mkdir win_tmp @@ -56,7 +56,7 @@ mkdir win_tmp/tmp cp src/or/tor.exe win_tmp/bin/ cp src/tools/tor-resolve.exe win_tmp/bin/ -cp contrib/tor.ico win_tmp/bin/ +cp contrib/win32build/tor.ico win_tmp/bin/ cp src/config/geoip win_tmp/bin/ strip win_tmp/bin/*.exe @@ -88,7 +88,7 @@ done clean_localstatedir src/config/torrc.sample.in win_tmp/src/config/torrc.sample -cp contrib/tor-mingw.nsi.in win_tmp/contrib/ +cp contrib/win32build/tor-mingw.nsi.in win_tmp/contrib/ cd win_tmp makensis.exe contrib/tor-mingw.nsi.in diff --git a/contrib/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in similarity index 100% rename from contrib/tor-mingw.nsi.in rename to contrib/win32build/tor-mingw.nsi.in diff --git a/contrib/tor.ico b/contrib/win32build/tor.ico similarity index 100% rename from contrib/tor.ico rename to contrib/win32build/tor.ico diff --git a/contrib/tor.nsi.in b/contrib/win32build/tor.nsi.in similarity index 100% rename from contrib/tor.nsi.in rename to contrib/win32build/tor.nsi.in diff --git a/contrib/xenobite.ico b/contrib/xenobite.ico deleted file mode 100644 index 352394eef0..0000000000 Binary files a/contrib/xenobite.ico and /dev/null differ diff --git a/doc/HACKING b/doc/HACKING index 28d4c5e6ce..2156f7ca13 100644 --- a/doc/HACKING +++ b/doc/HACKING @@ -122,7 +122,7 @@ Running gcov for unit test coverage make make check mkdir coverage-output - ./contrib/coverage coverage-output + ./scripts/test/coverage coverage-output ----- (On OSX, you'll need to start with "--enable-coverage CC=clang".) @@ -142,7 +142,7 @@ If you have two different "coverage-output" directories, and you want to see a meaningful diff between them, you can run: ----- - ./contrib/cov-diff coverage-output1 coverage-output2 | less + ./scripts/test/cov-diff coverage-output1 coverage-output2 | less ----- In this diff, any lines that were visited at least once will have coverage diff --git a/doc/tor.1.txt b/doc/tor.1.txt index 94c7d40a68..79368f56e5 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -1782,7 +1782,7 @@ if DirPort is non-zero): When this option is set, it takes an HTML file and publishes it as "/" on the DirPort. Now relay operators can provide a disclaimer without needing to set up a separate webserver. There's a sample disclaimer in - contrib/tor-exit-notice.html. + contrib/operator-tools/tor-exit-notice.html. [[V3AuthoritativeDirectory]] **V3AuthoritativeDirectory** **0**|**1**:: When this option is set in addition to **AuthoritativeDirectory**, Tor diff --git a/contrib/checkLogs.pl b/scripts/maint/checkLogs.pl similarity index 100% rename from contrib/checkLogs.pl rename to scripts/maint/checkLogs.pl diff --git a/contrib/checkOptionDocs.pl b/scripts/maint/checkOptionDocs.pl similarity index 100% rename from contrib/checkOptionDocs.pl rename to scripts/maint/checkOptionDocs.pl diff --git a/contrib/checkSpace.pl b/scripts/maint/checkSpace.pl similarity index 100% rename from contrib/checkSpace.pl rename to scripts/maint/checkSpace.pl diff --git a/contrib/findMergedChanges.pl b/scripts/maint/findMergedChanges.pl similarity index 100% rename from contrib/findMergedChanges.pl rename to scripts/maint/findMergedChanges.pl diff --git a/contrib/format_changelog.py b/scripts/maint/format_changelog.py similarity index 100% rename from contrib/format_changelog.py rename to scripts/maint/format_changelog.py diff --git a/contrib/redox.py b/scripts/maint/redox.py similarity index 98% rename from contrib/redox.py rename to scripts/maint/redox.py index 550f846864..fa816a7267 100755 --- a/contrib/redox.py +++ b/scripts/maint/redox.py @@ -10,7 +10,7 @@ # 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 ! +# ...and run ./scripts/maint/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. @@ -21,7 +21,7 @@ # 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