summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/tor/README21
-rw-r--r--network/tor/doinst.sh1
-rw-r--r--network/tor/rc.tor75
-rw-r--r--network/tor/tor.SlackBuild53
-rw-r--r--network/tor/tor.info8
5 files changed, 108 insertions, 50 deletions
diff --git a/network/tor/README b/network/tor/README
index 6340505979..962229ae97 100644
--- a/network/tor/README
+++ b/network/tor/README
@@ -5,4 +5,23 @@ SSH, and other applications that use the TCP protocol. Tor also
provides a platform on which software developers can build new
applications with built-in anonymity, safety, and privacy features.
-Tor requires the libevent library which is also available from SlackBuilds.org.
+This script requires a 'tor' user/group to exist before running.
+The recommended UID/GID is 220. You can create these like so:
+ groupadd -g 220 tor
+ useradd -u 220 -g 220 -c "The Onion Router" -d /dev/null -s /bin/false tor
+
+You can pass another user/group to the script, this is however, less safe:
+ TOR_USER=nobody TOR_GROUP=nogroup sh tor.SlackBuild
+
+The following can be used to start/stop tor automatically:
+/etc/rc.d/rc.local
+ if [ -x /etc/rc.d/rc.tor ]; then
+ /etc/rc.d/rc.tor start
+ fi
+
+/etc/rc.d/rc.local_shutdown
+ if [ -x /etc/rc.d/rc.tor ]; then
+ /etc/rc.d/rc.tor stop
+ fi
+
+Tor requires the libevent library, available from SlackBuilds.org.
diff --git a/network/tor/doinst.sh b/network/tor/doinst.sh
index 4a7f53f556..36769c85ca 100644
--- a/network/tor/doinst.sh
+++ b/network/tor/doinst.sh
@@ -21,3 +21,4 @@ fi
config etc/rc.d/rc.tor.new
config etc/tor/tor-tsocks.conf.new
+config etc/tor/torrc.new
diff --git a/network/tor/rc.tor b/network/tor/rc.tor
index d7ef906aae..cdeb865af3 100644
--- a/network/tor/rc.tor
+++ b/network/tor/rc.tor
@@ -1,43 +1,42 @@
-
#!/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 script is a modified contrb/tor.sh, for use on Slackware.
+
+TORCTL=/usr/bin/torctl
-PIDFILE="/var/lib/tor/tor.pid"
-
-tor_start() {
- echo -n "Starting tor: "
- if [ ! -f $PIDFILE ]; then
- /usr/bin/tor 1> /dev/null
- echo "OK"
- else
- echo -n "Removing stale lock.. "
- rm -f $PIDFILE
- /usr/bin/tor 1> /dev/null
- echo "OK"
- fi
-}
-
-tor_stop() {
- echo -n "Stopping tor: "
- if [ -f $PIDFILE ]; then
- killall tor &> /dev/null
- rm -f $PIDFILE
- echo "OK"
- else
- echo "Not Running"
- fi
-}
+# torctl will use these environment variables
+TORUSER=tor
+export TORUSER
case "$1" in
- start)
- tor_start
- ;;
- stop)
- tor_stop
- ;;
- restart)
- tor_stop
- tor_start
- ;;
- *)
- echo "Usage: rc.tor {start|stop|restart}"
+
+ start)
+ $TORCTL start
+ ;;
+
+ stop)
+ $TORCTL stop
+ ;;
+
+ restart)
+ $TORCTL restart
+ ;;
+
+ reload)
+ $TORCTL reload
+ ;;
+
+ status)
+ $TORCTL status
+ ;;
+
+ *)
+ echo "Usage: $0 (start|stop|restart|reload|status)"
esac
diff --git a/network/tor/tor.SlackBuild b/network/tor/tor.SlackBuild
index 576351449f..e0fe5d89b2 100644
--- a/network/tor/tor.SlackBuild
+++ b/network/tor/tor.SlackBuild
@@ -3,14 +3,18 @@
# Slackware build script for tor
# Written by Erik Hanson erik@slackbuilds.org
-set -eu
-
PRGNAM=tor
-VERSION=0.2.0.32
+VERSION=0.2.0.35
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+# Select tor's default user/group
+TOR_USER=${TOR_USER:-tor}
+TOR_UID=${TOR_UID:-220}
+TOR_GROUP=${TOR_GROUP:-tor}
+TOR_GID=${TOR_GID:-220}
+
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
@@ -18,12 +22,34 @@ OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+bailout() {
+ echo " You must have a $TOR_USER user and $TOR_GROUP group to run this script. "
+ echo " Something like this should suffice for most systems: "
+ echo " # groupadd -g $TOR_GID $TOR_GROUP "
+ echo " # useradd -u $TOR_UID -g $TOR_GID -c \"The Onion Router\" -d /dev/null -s /bin/false $TOR_USER "
+ exit 1
+}
+
+# Bail if user and/or group isn't valid on your system
+# uid=220 is suggested to avoid conflicts with other SBo packages,
+# but it's your call: http://slackbuilds.org/uid_gid.txt
+if ! grep -q "^$TOR_USER:" /etc/passwd; then
+ bailout
+elif ! grep -q "^$TOR_GROUP:" /etc/group; then
+ bailout
fi
+set -eu
+
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
@@ -38,12 +64,27 @@ CFLAGS="$SLKCFLAGS" \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
- --mandir=/usr/man
+ --mandir=/usr/man \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-tor-user=$TOR_USER \
+ --with-tor-group=$TOR_GROUP
make
make install-strip DESTDIR=$PKG
-gzip -9 $PKG/usr/man/man?/*.?
+# Create/install stuff that makes tor work (better)
+mkdir -p $PKG/var/{run,log,lib}/tor
+chown $TOR_USER:$TOR_GROUP $PKG/var/{run,log,lib}/tor
+chmod 0700 $PKG/var/lib/tor
+install -D -m 0755 $CWD/rc.tor $PKG/etc/rc.d/rc.tor.new
+install -D -m 0755 contrib/torctl $PKG/usr/bin/torctl
+mv $PKG/etc/tor/torrc.sample $PKG/etc/tor/torrc.new
+mv $PKG/etc/tor/tor-tsocks.conf $PKG/etc/tor/tor-tsocks.conf.new
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/spec
cp -a AUTHORS ChangeLog INSTALL LICENSE README ReleaseNotes \
@@ -55,8 +96,6 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install $PKG/etc/rc.d
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
-cat $CWD/rc.tor > $PKG/etc/rc.d/rc.tor.new
-mv $PKG/etc/tor/tor-tsocks.conf $PKG/etc/tor/tor-tsocks.conf.new
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/network/tor/tor.info b/network/tor/tor.info
index eace537475..eb6960b786 100644
--- a/network/tor/tor.info
+++ b/network/tor/tor.info
@@ -1,8 +1,8 @@
PRGNAM="tor"
-VERSION="0.2.0.32"
+VERSION="0.2.0.35"
HOMEPAGE="http://tor.eff.org/"
-DOWNLOAD="http://www.torproject.org/dist/tor-0.2.0.32.tar.gz"
-MD5SUM="fd55489f7ad1ef53c0b0dac857696fc9"
+DOWNLOAD="http://www.torproject.org/dist/tor-0.2.0.35.tar.gz"
+MD5SUM="d4841e1b4d54866495fd373e865b2d44"
MAINTAINER="Erik Hanson"
EMAIL="erik@slackbuilds.org"
-APPROVED="dsomero" \ No newline at end of file
+APPROVED="rworkman"