summaryrefslogtreecommitdiff
path: root/contrib/tor.spec
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tor.spec')
-rw-r--r--contrib/tor.spec150
1 files changed, 150 insertions, 0 deletions
diff --git a/contrib/tor.spec b/contrib/tor.spec
new file mode 100644
index 0000000000..9a48cecf72
--- /dev/null
+++ b/contrib/tor.spec
@@ -0,0 +1,150 @@
+# TODO:
+# Add /etc/logrotate.d/tor
+#
+
+%define blddate %(date -u +"%Y%m%d%H%M")
+
+%define version 0.0.7
+%define version_extra rc2
+%define vepoch 0.1
+%define tor_version %{version}%{version_extra}
+# not quite right XXXXX
+%define release 0.std.%{vepoch}.%{version_extra}
+
+Name: tor
+Version: %{version}
+Release: %{release}
+Summary: Anonymizing overlay network for TCP
+Vendor: R. Dingledine <arma@seul.org>
+Packager: Nick Mathewson <nickm@seul.org>
+License: BSD-like
+Group: Applications/Internet
+URL: http://freehaven.net/tor/
+
+Source0: http://freehaven.net/tor/dist/tor-%{tor_version}.tar.gz
+
+Requires: openssl >= 0.9.6
+BuildRequires: openssl-devel >= 0.9.6
+Requires(pre): shadow-utils, /usr/bin/id, /bin/date, /bin/sh
+Requires(pre): %{_sbindir}/useradd, %{_sbindir}/groupadd
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+%description
+Tor is a connection-based low-latency anonymous communication system which
+addresses many flaws in the original onion routing design.
+
+In brief, Onion Routing is a connection-oriented anonymizing communication
+service. Users choose a source-routed path through a set of nodes, and
+negotiate a "virtual circuit" through the network, in which each node
+knows its predecessor and successor, but no others. Traffic flowing down
+the circuit is unwrapped by a symmetric key at each node, which reveals
+the downstream node.
+
+Basically Tor provides a distributed network of servers ("onion
+routers"). Users bounce their tcp streams (web traffic, ftp, ssh, etc)
+around the routers, and recipients, observers, and even the routers
+themselves have difficulty tracking the source of the stream.
+
+Note that Tor does no protocol cleaning. That means there is a danger that
+application protocols and associated programs can be induced to reveal
+information about the initiator. Tor depends on Privoxy and similar protocol
+cleaners to solve this problem.
+
+Client applications can use the Tor network by connecting to the local
+onion proxy. If the application itself does not come with socks support
+you can use a socks client such as tsocks. Some web browsers like mozilla
+and web proxies like privoxy come with socks support, so you don't need an
+extra socks client if you want to use Tor with them.
+
+Remember that this is alpha code, and the network is very small -- Tor will
+not provide anonymity currently.
+
+This package provides the "tor" program, which serves as both a client
+and a relay node. Scripts will automatically create a "tor" user and
+group, set tor up to run as a daemon, and automatically start it at
+installation time.
+
+%prep
+%setup -q -n tor-%{tor_version}
+
+# Patch the startup script to use the right user and group IDs. Force
+# the use of /bin/sh as the shell for the "tor" account.
+ed -s contrib/tor.sh.in << '/EOF/' > /dev/null
+,s/^TORUSER=$/TORUSER=tor/
+,s/^TORGROUP=$/TORGROUP=tor/
+,s:/bin/su:/bin/su -s /bin/sh:
+#
+# Save and exit ed
+w
+q
+/EOF/
+
+%build
+%configure
+%__make
+
+%install
+%makeinstall
+
+# Install init script.
+%__mkdir_p ${RPM_BUILD_ROOT}%{_initrddir}
+%__install -p -m 755 contrib/tor.sh ${RPM_BUILD_ROOT}%{_initrddir}/tor
+
+# Directories that don't have any preinstalled files
+%__mkdir_p -m 700 ${RPM_BUILD_ROOT}%{_localstatedir}/lib/tor
+%__mkdir_p -m 755 ${RPM_BUILD_ROOT}%{_localstatedir}/run/tor
+%__mkdir_p -m 755 ${RPM_BUILD_ROOT}%{_localstatedir}/log/tor
+
+%clean
+[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
+
+%pre
+[ -f %{_initrddir}/tor ] && /sbin/service tor stop
+if [ ! -n "`/usr/bin/id -g tor 2>/dev/null`" ]; then
+ # One would like to default the GID, but doing that properly would
+ # require thought.
+ %{_sbindir}/groupadd tor 2> /dev/null
+fi
+if [ ! -n "`/usr/bin/id -u tor 2>/dev/null`" ]; then
+ # One would also like to default the UID, but doing that properly would
+ # also require thought.
+ if [ -x /sbin/nologin ]; then
+ %{_sbindir}/useradd -r -g tor -d / -s /sbin/nologin tor 2> /dev/null
+ else
+ %{_sbindir}/useradd -r -g tor -d / -s /bin/false tor 2> /dev/null
+ fi
+fi
+
+%post
+/sbin/chkconfig --add tor
+/sbin/chkconfig tor && /sbin/service tor start
+
+%preun
+/sbin/chkconfig tor && /sbin/service tor stop
+/sbin/chkconfig --del tor
+
+%files
+%defattr(-,root,root)
+%doc AUTHORS INSTALL LICENSE README ChangeLog doc/HACKING doc/TODO doc/FAQ
+#%{_mandir}/man1/tor.1.gz
+#%{_mandir}/man1/torify.1.gz
+%{_mandir}/man*/*
+%{_bindir}/tor
+%{_bindir}/torify
+%config %{_initrddir}/tor
+%dir %{_sysconfdir}/tor/
+%config(noreplace) %{_sysconfdir}/tor/torrc.sample
+%config(noreplace) %{_sysconfdir}/tor/dirservers
+%config(noreplace) %{_sysconfdir}/tor/tor-tsocks.conf
+%attr(0700,tor,tor) %dir %{_localstatedir}/lib/tor
+%attr(0755,tor,tor) %dir %{_localstatedir}/run/tor
+%attr(0755,tor,tor) %dir %{_localstatedir}/log/tor
+
+%changelog
+* Mon Jun 06 2004 Nick Mathewson <nickm@freehaven.net> 0.0.7-0.std.0.1.rc2
+- Make spec file more happy with fc2 packaging
+
+* Sat Jan 17 2004 John Bashinski <jbash@velvet.com>
+- Basic spec file; tested with Red Hat 9.
+