aboutsummaryrefslogtreecommitdiff
path: root/contrib/dist
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/dist
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/dist')
-rw-r--r--contrib/dist/rc.subr43
-rw-r--r--contrib/dist/suse/include.am1
-rw-r--r--contrib/dist/suse/tor.sh.in118
-rw-r--r--contrib/dist/tor.sh.in123
-rw-r--r--contrib/dist/torctl.in195
5 files changed, 480 insertions, 0 deletions
diff --git a/contrib/dist/rc.subr b/contrib/dist/rc.subr
new file mode 100644
index 000000000..d757e8952
--- /dev/null
+++ b/contrib/dist/rc.subr
@@ -0,0 +1,43 @@
+#!/bin/sh
+# $FreeBSD: ports/security/tor-devel/files/tor.in,v 1.1 2006/02/17 22:21:25 mnag Exp $
+#
+# (rc.subr written by Peter Thoenen for Net/FreeBSD)
+#
+# REQUIRE: NETWORKING SERVERS USR
+# BEFORE: LOGIN
+#
+# Add the following lines to /etc/rc.conf to enable tor
+#
+# tor_enable (bool): Set to "NO" by default
+# Set it to "YES" to enable tor
+# tor_conf (str): Points to your tor conf file
+# Default: /usr/local/etc/tor/torrc
+# tor_user (str): Tor Daemon user. Default _tor
+#
+
+. /etc/rc.subr
+
+name="tor"
+rcvar=${name}_enable
+
+load_rc_config ${name}
+
+: ${tor_enable="NO"}
+: ${tor_conf="/usr/local/etc/tor/torrc"}
+: ${tor_user="_tor"}
+: ${tor_pidfile="/var/run/tor/tor.pid"}
+: ${tor_logfile="/var/log/tor"}
+: ${tor_datadir="/var/run/tor"}
+
+required_files=${tor_conf}
+required_dirs=${tor_datadir}
+command="/usr/local/bin/${name}"
+command_args="-f ${tor_conf} --pidfile ${tor_pidfile} --runasdaemon 1 --datadirectory ${tor_datadir} --user ${tor_user}"
+extra_commands="log"
+log_cmd="${name}_log"
+
+tor_log() {
+ cat ${tor_logfile}
+}
+
+run_rc_command "$1"
diff --git a/contrib/dist/suse/include.am b/contrib/dist/suse/include.am
new file mode 100644
index 000000000..4aed0e123
--- /dev/null
+++ b/contrib/dist/suse/include.am
@@ -0,0 +1 @@
+EXTRA_DIST+= contrib/suse/tor.sh
diff --git a/contrib/dist/suse/tor.sh.in b/contrib/dist/suse/tor.sh.in
new file mode 100644
index 000000000..b7e9005eb
--- /dev/null
+++ b/contrib/dist/suse/tor.sh.in
@@ -0,0 +1,118 @@
+#!/bin/sh
+#
+# Copyright (c) 2006-2007 Andrew Lewman
+#
+# tor The Onion Router
+#
+# Startup/shutdown script for tor. This is a wrapper around torctl;
+# torctl does the actual work in a relatively system-independent, or at least
+# distribution-independent, way, and this script deals with fitting the
+# whole thing into the conventions of the particular system at hand.
+#
+# These next couple of lines "declare" tor for the "chkconfig" program,
+# originally from SGI, used on Red Hat/Fedora and probably elsewhere.
+#
+# chkconfig: 2345 90 10
+# description: Onion Router - A low-latency anonymous proxy
+#
+
+### BEGIN INIT INFO
+# Provides: tor
+# Required-Start: $remote_fs $network
+# Required-Stop: $remote_fs $network
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Start the tor daemon
+# Description: Start the tor daemon: the anon-proxy server
+### END INIT INFO
+
+. /etc/rc.status
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v ditto but be verbose in local rc status
+# rc_status -v -r ditto and clear the local rc status
+# rc_failed set local and overall rc status to failed
+# rc_reset clear local rc status (overall remains)
+# rc_exit exit appropriate to overall rc status
+
+# First reset status of this service
+rc_reset
+
+# Increase open file descriptors a reasonable amount
+ulimit -n 8192
+
+TORCTL=@BINDIR@/torctl
+
+# torctl will use these environment variables
+TORUSER=@TORUSER@
+export TORUSER
+TORGROUP=@TORGROUP@
+export TORGROUP
+
+TOR_DAEMON_PID_DIR="@LOCALSTATEDIR@/run/tor"
+
+if [ -x /bin/su ] ; then
+ SUPROG=/bin/su
+elif [ -x /sbin/su ] ; then
+ SUPROG=/sbin/su
+elif [ -x /usr/bin/su ] ; then
+ SUPROG=/usr/bin/su
+elif [ -x /usr/sbin/su ] ; then
+ SUPROG=/usr/sbin/su
+else
+ SUPROG=/bin/su
+fi
+
+case "$1" in
+
+ start)
+ echo "Starting tor daemon"
+
+ if [ ! -d $TOR_DAEMON_PID_DIR ] ; then
+ mkdir -p $TOR_DAEMON_PID_DIR
+ chown $TORUSER:$TORGROUP $TOR_DAEMON_PID_DIR
+ fi
+
+ ## Start daemon with startproc(8). If this fails
+ ## the echo return value is set appropriate.
+
+ startproc -f $TORCTL start
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ stop)
+ echo "Stopping tor daemon"
+ startproc -f $TORCTL stop
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ restart)
+ echo "Restarting tor daemon"
+ startproc -f $TORCTL restart
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ reload)
+ echo "Reloading tor daemon"
+ startproc -f $TORCTL reload
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ status)
+ startproc -f $TORCTL status
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+
+ *)
+ echo "Usage: $0 (start|stop|restart|reload|status)"
+ RETVAL=1
+esac
+
+rc_exit
diff --git a/contrib/dist/tor.sh.in b/contrib/dist/tor.sh.in
new file mode 100644
index 000000000..92f890681
--- /dev/null
+++ b/contrib/dist/tor.sh.in
@@ -0,0 +1,123 @@
+#!/bin/sh
+#
+# tor The Onion Router
+#
+# Startup/shutdown script for tor. This is a wrapper around torctl;
+# torctl does the actual work in a relatively system-independent, or at least
+# distribution-independent, way, and this script deals with fitting the
+# whole thing into the conventions of the particular system at hand.
+# This particular script is written for Red Hat/Fedora Linux, and may
+# also work on Mandrake, but not SuSE.
+#
+# These next couple of lines "declare" tor for the "chkconfig" program,
+# originally from SGI, used on Red Hat/Fedora and probably elsewhere.
+#
+# chkconfig: 2345 90 10
+# description: Onion Router - A low-latency anonymous proxy
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/tor
+NAME=tor
+DESC="tor daemon"
+TORPIDDIR=/var/run/tor
+TORPID=$TORPIDDIR/tor.pid
+WAITFORDAEMON=60
+ARGS=""
+
+# Library functions
+if [ -f /etc/rc.d/init.d/functions ]; then
+ . /etc/rc.d/init.d/functions
+elif [ -f /etc/init.d/functions ]; then
+ . /etc/init.d/functions
+fi
+
+TORCTL=@BINDIR@/torctl
+
+# torctl will use these environment variables
+TORUSER=@TORUSER@
+export TORUSER
+
+if [ -x /bin/su ] ; then
+ SUPROG=/bin/su
+elif [ -x /sbin/su ] ; then
+ SUPROG=/sbin/su
+elif [ -x /usr/bin/su ] ; then
+ SUPROG=/usr/bin/su
+elif [ -x /usr/sbin/su ] ; then
+ SUPROG=/usr/sbin/su
+else
+ SUPROG=/bin/su
+fi
+
+# Raise ulimit based on number of file descriptors available (thanks, Debian)
+
+if [ -r /proc/sys/fs/file-max ]; then
+ system_max=`cat /proc/sys/fs/file-max`
+ if [ "$system_max" -gt "80000" ] ; then
+ MAX_FILEDESCRIPTORS=32768
+ elif [ "$system_max" -gt "40000" ] ; then
+ MAX_FILEDESCRIPTORS=16384
+ elif [ "$system_max" -gt "10000" ] ; then
+ MAX_FILEDESCRIPTORS=8192
+ else
+ MAX_FILEDESCRIPTORS=1024
+ cat << EOF
+
+Warning: Your system has very few filedescriptors available in total.
+
+Maybe you should try raising that by adding 'fs.file-max=100000' to your
+/etc/sysctl.conf file. Feel free to pick any number that you deem appropriate.
+Then run 'sysctl -p'. See /proc/sys/fs/file-max for the current value, and
+file-nr in the same directory for how many of those are used at the moment.
+
+EOF
+ fi
+else
+ MAX_FILEDESCRIPTORS=8192
+fi
+
+NICE=""
+
+case "$1" in
+
+ start)
+ if [ -n "$MAX_FILEDESCRIPTORS" ]; then
+ echo -n "Raising maximum number of filedescriptors (ulimit -n) to $MAX_FILEDESCRIPTORS"
+ if ulimit -n "$MAX_FILEDESCRIPTORS" ; then
+ echo "."
+ else
+ echo ": FAILED."
+ fi
+ fi
+
+ action $"Starting tor:" $TORCTL start
+ RETVAL=$?
+ ;;
+
+ stop)
+ action $"Stopping tor:" $TORCTL stop
+ RETVAL=$?
+ ;;
+
+ restart)
+ action $"Restarting tor:" $TORCTL restart
+ RETVAL=$?
+ ;;
+
+ reload)
+ action $"Reloading tor:" $TORCTL reload
+ RETVAL=$?
+ ;;
+
+ status)
+ $TORCTL status
+ RETVAL=$?
+ ;;
+
+ *)
+ echo "Usage: $0 (start|stop|restart|reload|status)"
+ RETVAL=1
+esac
+
+exit $RETVAL
diff --git a/contrib/dist/torctl.in b/contrib/dist/torctl.in
new file mode 100644
index 000000000..4cc137da4
--- /dev/null
+++ b/contrib/dist/torctl.in
@@ -0,0 +1,195 @@
+#!/bin/sh
+#
+# TOR control script designed to allow an easy command line interface
+# to controlling The Onion Router
+#
+# The exit codes returned are:
+# 0 - operation completed successfully. For "status", tor running.
+# 1 - For "status", tor not running.
+# 2 - Command not supported
+# 3 - Could not be started or reloaded
+# 4 - Could not be stopped
+# 5 -
+# 6 -
+# 7 -
+# 8 -
+#
+# When multiple arguments are given, only the error from the _last_
+# one is reported.
+#
+#
+# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
+# -------------------- --------------------
+# Name of the executable
+EXEC=tor
+#
+# the path to your binary, including options if necessary
+TORBIN="@BINDIR@/$EXEC"
+#
+# the path to the configuration file
+TORCONF="@CONFDIR@/torrc"
+#
+# the path to your PID file
+PIDFILE="@LOCALSTATEDIR@/run/tor/tor.pid"
+#
+# The path to the log file
+LOGFILE="@LOCALSTATEDIR@/log/tor/tor.log"
+#
+# The path to the datadirectory
+TORDATA="@LOCALSTATEDIR@/lib/tor"
+#
+TORARGS="--pidfile $PIDFILE --log \"notice file $LOGFILE\" --runasdaemon 1"
+TORARGS="$TORARGS --datadirectory $TORDATA"
+
+# If user name is set in the environment, then use it;
+# otherwise run as the invoking user (or whatever user the config
+# file says)... unless the invoking user is root. The idea here is to
+# let an unprivileged user run tor for her own use using this script,
+# while still providing for it to be used as a system daemon.
+if [ "x`id -u`" = "x0" ]; then
+ TORUSER=@TORUSER@
+fi
+
+if [ "x$TORUSER" != "x" ]; then
+ TORARGS="$TORARGS --user $TORUSER"
+fi
+
+# We no longer wrap the Tor daemon startup in an su when running as
+# root, because it's too painful to make the use of su portable.
+# Just let the daemon set the UID and GID.
+START="$TORBIN -f $TORCONF $TORARGS"
+
+#
+# -------------------- --------------------
+# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
+
+ERROR=0
+ARGV="$@"
+if [ "x$ARGV" = "x" ] ; then
+ ARGS="help"
+fi
+
+checkIfRunning ( ) {
+ # check for pidfile
+ PID=unknown
+ if [ -f $PIDFILE ] ; then
+ PID=`/bin/cat $PIDFILE`
+ if [ "x$PID" != "x" ] ; then
+ if kill -0 $PID 2>/dev/null ; then
+ STATUS="$EXEC (pid $PID) running"
+ RUNNING=1
+ else
+ STATUS="PID file ($PIDFILE) present, but $EXEC ($PID) not running"
+ RUNNING=0
+ fi
+ else
+ STATUS="$EXEC (pid $PID?) not running"
+ RUNNING=0
+ fi
+ else
+ STATUS="$EXEC apparently not running (no pid file)"
+ RUNNING=0
+ fi
+ return
+}
+
+for ARG in $@ $ARGS
+do
+ checkIfRunning
+
+ case $ARG in
+ start)
+ if [ $RUNNING -eq 1 ]; then
+ echo "$0 $ARG: $EXEC (pid $PID) already running"
+ continue
+ fi
+ if eval "$START" ; then
+ echo "$0 $ARG: $EXEC started"
+ # Make sure it stayed up!
+ /bin/sleep 1
+ checkIfRunning
+ if [ $RUNNING -eq 0 ]; then
+ echo "$0 $ARG: $EXEC (pid $PID) quit unexpectedly"
+ fi
+ else
+ echo "$0 $ARG: $EXEC could not be started"
+ ERROR=3
+ fi
+ ;;
+ stop)
+ if [ $RUNNING -eq 0 ]; then
+ echo "$0 $ARG: $STATUS"
+ continue
+ fi
+ if kill -15 $PID ; then
+ echo "$0 $ARG: $EXEC stopped"
+ else
+ /bin/sleep 1
+ if kill -9 $PID ; then
+ echo "$0 $ARG: $EXEC stopped"
+ else
+ echo "$0 $ARG: $EXEC could not be stopped"
+ ERROR=4
+ fi
+ fi
+ # Make sure it really died!
+ /bin/sleep 1
+ checkIfRunning
+ if [ $RUNNING -eq 1 ]; then
+ echo "$0 $ARG: $EXEC (pid $PID) unexpectedly still running"
+ ERROR=4
+ fi
+ ;;
+ restart)
+ $0 stop start
+ ;;
+ reload)
+ if [ $RUNNING -eq 0 ]; then
+ echo "$0 $ARG: $STATUS"
+ continue
+ fi
+ if kill -1 $PID; then
+ /bin/sleep 1
+ echo "$EXEC (PID $PID) reloaded"
+ else
+ echo "Can't reload $EXEC"
+ ERROR=3
+ fi
+ ;;
+ status)
+ echo $STATUS
+ if [ $RUNNING -eq 1 ]; then
+ ERROR=0
+ else
+ ERROR=1
+ fi
+ ;;
+ log)
+ cat $LOGFILE
+ ;;
+ help)
+ echo "usage: $0 (start|stop|restart|status|help)"
+ /bin/cat <<EOF
+
+start - start $EXEC
+stop - stop $EXEC
+restart - stop and restart $EXEC if running or start if not running
+reload - cause the running process to reinitialize itself
+status - tell whether $EXEC is running or not
+log - display the contents of the log file
+help - this text
+
+EOF
+ ERROR=0
+ ;;
+ *)
+ $0 help
+ ERROR=2
+ ;;
+
+ esac
+
+done
+
+exit $ERROR
+