Browse Source

Integrate jbash's RPM spec into build process. (Requires "rpmbuild" to
build properly. Works fine on redhat 9. YMMV.)


svn:r1199

Nick Mathewson 20 years ago
parent
commit
a1503f667e
5 changed files with 130 additions and 150 deletions
  1. 10 0
      Makefile.am
  2. 1 1
      configure.in
  3. 1 1
      contrib/Makefile.am
  4. 0 148
      contrib/tor.spec
  5. 118 0
      contrib/tor.spec.in

+ 10 - 0
Makefile.am

@@ -9,3 +9,13 @@ EXTRA_DIST = INSTALL README AUTHORS LICENSE ChangeLog
 
 #install-data-local:
 #	$(INSTALL) -m 755 -d $(LOCALSTATEDIR)/lib/tor
+
+dist-rpm: dist
+	rm -rf /tmp/tor-rpm-build
+	mkdir /tmp/tor-rpm-build
+	for subdir in BUILD RPMS SOURCES SPECS SRPMS; do \
+	    mkdir /tmp/tor-rpm-build/$$subdir;           \
+	done
+	cp tor-$(VERSION).tar.gz /tmp/tor-rpm-build/SOURCES
+	rpmbuild -ba --define '_topdir /tmp/tor-rpm-build' contrib/tor.spec
+	mv /tmp/tor-rpm-build/*RPMS/* .

+ 1 - 1
configure.in

@@ -184,5 +184,5 @@ AC_SUBST(LOCALSTATEDIR)
 
 echo "confdir: $CONFDIR"
 
-AC_OUTPUT(Makefile contrib/tor.sh contrib/torify contrib/Makefile src/config/torrc doc/tor.1 src/Makefile doc/Makefile src/config/Makefile src/common/Makefile src/or/Makefile)
+AC_OUTPUT(Makefile contrib/tor.sh contrib/torify contrib/Makefile contrib/tor.spec src/config/torrc doc/tor.1 src/Makefile doc/Makefile src/config/Makefile src/common/Makefile src/or/Makefile)
 

+ 1 - 1
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
 

+ 0 - 148
contrib/tor.spec

@@ -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 <arma@seul.org>
-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 <jbash@velvet.com>
-- Basic spec file; tested with Red Hat 9.

+ 118 - 0
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 <arma@seul.org>
+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 <jbash@velvet.com>
+- Basic spec file; tested with Red Hat 9.
+