From a1503f667ef8b4eeaab81b0c50f273026ca4474a Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 2 Mar 2004 19:09:30 +0000 Subject: Integrate jbash's RPM spec into build process. (Requires "rpmbuild" to build properly. Works fine on redhat 9. YMMV.) svn:r1199 --- contrib/Makefile.am | 2 +- contrib/tor.spec | 148 ---------------------------------------------------- contrib/tor.spec.in | 118 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 119 insertions(+), 149 deletions(-) delete mode 100644 contrib/tor.spec create mode 100644 contrib/tor.spec.in (limited to 'contrib') diff --git a/contrib/Makefile.am b/contrib/Makefile.am index e53f5d739..d4a7a077a 100644 --- a/contrib/Makefile.am +++ b/contrib/Makefile.am @@ -1,6 +1,6 @@ confdir = $(sysconfdir)/tor -EXTRA_DIST = tor-tsocks.conf torify.1 +EXTRA_DIST = tor-tsocks.conf torify.1 tor.spec conf_DATA = tor-tsocks.conf diff --git a/contrib/tor.spec b/contrib/tor.spec deleted file mode 100644 index d5a9d6ff0..000000000 --- a/contrib/tor.spec +++ /dev/null @@ -1,148 +0,0 @@ -%define rellevel 1 -%define relbase std.%{rellevel} -%define rhrel %([ -f /etc/redhat-release ] && (sed -e 's/^Red Hat Linux release //' -e 's/ .*$//' -e 's/\\./_/g' -e 's/^.*$/.rh&/' < /etc/redhat-release)) -%define blddate %(date -u +"%Y%m%d%H%M") -%define release %{relbase}%{rhrel}.%{blddate} - -%define initdir /etc/rc.d/init.d - -Summary: tor: anonymizing overlay network for TCP -Name: tor -Version: 0.0.2pre20 -Vendor: R. Dingledine -Release: %{release} -License: BSD-like -Group: Applications/Internet -URL: http://freehaven.net/tor - -Source0: http://freehaven.net/tor/dist/tor-0.0.2pre19.tar.gz - -Requires(pre): shadow-utils, /usr/bin/id, /bin/date, /bin/sh -Requires(pre): %{_sbindir}/useradd, %{_sbindir}/groupadd - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{relbase}-root - -%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 - -# Patch the startup script to use the right user and group IDs, store -# the PID in a subdirectory of /var/run (so tor doesn't have to start -# as root) and add in a control line for chkconfig. This (BSD? Debian?) -# script will work, but doesn't use all the weird Red Hat macros to make -# the boot sequence look pretty. -ed -s tor.sh.in << '/EOF/' > /dev/null -# Change the PID file location -,s/^TORPID=\(.*\)\/run\/tor.pid/TORPID=\1\/run\/tor\/tor.pid/ -# -# Set user to "tor" before starting tor -,s/^\([ ]*\)\(\$TORBIN.*\)$/\1\/bin\/su -s \/bin\/sh -c "\2" tor/ -# -# Add user and group to command line. Suspenders and belt. -,s/^TORARGS="\(.*\)"/TORARGS="\1 --user tor --group tor"/ -# -# Add control lines for chkconfig -1a -# chkconfig: 2345 90 10 -# description: Onion router -. -# -# Save and exit ed -w -q -/EOF/ - -%build -%configure -%__make - -%install -%makeinstall - -# Install init script. -%__mkdir_p ${RPM_BUILD_ROOT}%{initdir} -%__install -m 755 tor.sh ${RPM_BUILD_ROOT}%{initdir}/tor - -# Directories that don't have any preinstalled files -%__mkdir_p -m 700 ${RPM_BUILD_ROOT}/var/lib/tor -%__mkdir_p -m 755 ${RPM_BUILD_ROOT}/var/run/tor -%__mkdir_p -m 755 ${RPM_BUILD_ROOT}/var/log/tor - -%clean -[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} - -%pre -[ -f %{initdir}/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 -g tor -d / -s /sbin/nologin tor 2> /dev/null - else - %{_sbindir}/useradd -g tor -d / -s /bin/false tor 2> /dev/null - fi -fi - -%post -/sbin/chkconfig --add tor -/sbin/service tor start - -%preun -/sbin/service tor stop -/sbin/chkconfig --del tor - -%files -%defattr(-,root,root) -%doc AUTHORS INSTALL LICENSE README -%{_mandir}/man*/* -%{_bindir}/tor -%{initdir}/tor -%dir %{_sysconfdir}/tor/ -%config(noreplace) %{_sysconfdir}/tor/torrc -%config(noreplace) %{_sysconfdir}/tor/dirservers -%attr(-,tor,tor) %dir /var/lib/tor -%attr(-,tor,tor) %dir /var/run/tor -%attr(-,tor,tor) %dir /var/log/tor - -%changelog -* Sat Jan 17 2004 John Bashinski -- Basic spec file; tested with Red Hat 9. diff --git a/contrib/tor.spec.in b/contrib/tor.spec.in new file mode 100644 index 000000000..d1a8ff27a --- /dev/null +++ b/contrib/tor.spec.in @@ -0,0 +1,118 @@ +%define rellevel 2 +%define relbase std.%{rellevel} +%define rhrel %([ -f /etc/redhat-release ] && (sed -e 's/^Red Hat Linux release //' -e 's/ .*$//' -e 's/\\./_/g' -e 's/^.*$/.rh&/' < /etc/redhat-release)) +%define blddate %(date -u +"%Y%m%d%H%M") +%define release %{relbase}%{rhrel}.%{blddate} + +%define initdir /etc/rc.d/init.d + +Summary: tor: The Onion Router; patent-free Onion Routing +Name: tor +Version: @VERSION@ +Vendor: R. Dingledine +Release: %{release} +License: BSD-like +Group: Applications/Internet +URL: http://freehaven.net/tor + +Source0: http://freehaven.net/tor/dist/tor-%{version}.tar.gz + +Requires(pre): shadow-utils, /usr/bin/id, /bin/date, /bin/sh +Requires(pre): %{_sbindir}/useradd, %{_sbindir}/groupadd + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{relbase}-root + +%description +Tor is a system that conceals the sources of TCP connections +by relaying those connections through multiple independently administered +forwarding nodes; it is a "cascaded mix" system. Among older systems, +Tor is most similar to Onion Routing. The basic concept of Tor is also +similar to that of the Zero Knowledge Freedom system or the Java Anonymous +Proxy. The "onions" used in Tor are similar in concept to the reply blocks +used with type I "cypherpunks" anonymous remailers. Feeding phrases +from this paragraph into search engines should give you more background +information than you really want. + +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 + +# 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}%{initdir} +%__install -m 755 contrib/tor.sh ${RPM_BUILD_ROOT}%{initdir}/tor + +# Directories that don't have any preinstalled files +%__mkdir_p -m 700 ${RPM_BUILD_ROOT}/var/lib/tor +%__mkdir_p -m 755 ${RPM_BUILD_ROOT}/var/run/tor +%__mkdir_p -m 755 ${RPM_BUILD_ROOT}/var/log/tor + +%clean +[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} + +%pre +[ -f %{initdir}/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 +%{_mandir}/man*/* +%{_bindir}/tor +%{_bindir}/torify +%{initdir}/tor +%dir %{_sysconfdir}/tor/ +%config(noreplace) %{_sysconfdir}/tor/torrc +%config(noreplace) %{_sysconfdir}/tor/dirservers +%config(noreplace) %{_sysconfdir}/tor/tor-tsocks.conf +%attr(-,tor,tor) %dir /var/lib/tor +%attr(-,tor,tor) %dir /var/run/tor +%attr(-,tor,tor) %dir /var/log/tor + +%changelog +* Sat Jan 17 2004 John Bashinski +- Basic spec file; tested with Red Hat 9. + -- cgit v1.2.3