From: Scott V. Kamp Date: Sat, 18 Dec 2010 02:01:59 +0000 (+0000) Subject: [patch-team] - tor-alpha new package - Signed-off-by: Jacob Appelbaum SVN-Revision: 24656 --- diff --git a/net/tor-alpha/Makefile b/net/tor-alpha/Makefile new file mode 100644 index 0000000000..4a96e64c07 --- /dev/null +++ b/net/tor-alpha/Makefile @@ -0,0 +1,103 @@ +# +# Copyright (C) 2008-2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +# Want to test this package? Try this: +# make package/tor-alpha/{clean,compile,install} V=99 +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tor-alpha +PKG_VERSION:=0.2.2.19-alpha +PKG_RELEASE:=1 + +PKG_SOURCE:=tor-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://www.torproject.org/dist +PKG_MD5SUM:=619f0c4243adc67360e8a99710935697 +PKG_BUILD_DIR=$(BUILD_DIR)/tor-$(PKG_VERSION)/ + +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/tor-alpha + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libevent +libopenssl +libpthread +miniupnpc + TITLE:=An anonymous Internet communication system + URL:=http://www.torproject.org/ +endef + +define Package/tor-alpha/description + Tor is a toolset for a wide range of organizations and people that want to + improve their safety and security on the Internet. Using Tor can help you + anonymize web browsing and publishing, instant messaging, IRC, SSH, and + more. Tor also provides a platform on which software developers can build + new applications with built-in anonymity, safety, and privacy features. +endef + +define Package/tor-alpha/conffiles +/etc/tor/torrc +endef + +define Package/tor-alpha/postinst +#!/bin/sh + +name=tor +id=52 + +# do not change below +# # check if we are on real system +if [ -z "$${IPKG_INSTROOT}" ]; then + # create copies of passwd and group, if we use squashfs + rootfs=`mount |awk '/root/ { print $$5 }'` + if [ "$$rootfs" = "squashfs" ]; then + if [ -h /etc/group ]; then + rm /etc/group + cp /rom/etc/group /etc/group + fi + if [ -h /etc/passwd ]; then + rm /etc/passwd + cp /rom/etc/passwd /etc/passwd + fi + fi +fi + +echo "" +if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/group)" ]; then + echo "adding group $$name to /etc/group" + echo "$${name}:x:$${id}:" >> $${IPKG_INSTROOT}/etc/group +fi + +if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/passwd)" ]; then + echo "adding user $$name to /etc/passwd" + echo "$${name}:x:$${id}:$${id}:$${name}:/tmp/.$${name}:/bin/false" >> $${IPKG_INSTROOT}/etc/passwd +fi +endef + +CONFIGURE_ARGS += \ + --with-libevent-dir="$(STAGING_DIR)/usr" \ + --with-ssl-dir="$(STAGING_DIR)/usr" \ + --enable-upnp \ + --with-libminiupnpc-dir="$(STAGING_DIR)/usr" \ + +CONFIGURE_VARS += \ + CROSS_COMPILE="yes" \ + +# pass CFLAGS again to override -O2 set by configure +MAKE_FLAGS += \ + CFLAGS="$(TARGET_CFLAGS)" \ + +define Package/tor-alpha/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tor $(1)/usr/sbin/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/tor.init $(1)/etc/init.d/tor + $(INSTALL_DIR) $(1)/etc/tor + $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/tor/torrc.sample $(1)/etc/tor/torrc +endef + +$(eval $(call BuildPackage,tor-alpha)) diff --git a/net/tor-alpha/files/tor.init b/net/tor-alpha/files/tor.init new file mode 100644 index 0000000000..40d4ecf0a1 --- /dev/null +++ b/net/tor-alpha/files/tor.init @@ -0,0 +1,26 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006 OpenWrt.org +START=50 + +BIN=tor +DEFAULT=/etc/default/$BIN +LOG_D=/var/log/$BIN +LIB_D=/var/lib/$BIN +RUN_D=/var/run +PID_F=$RUN_D/$BIN.pid +RUN_USER=$BIN +RUN_GROUP=$BIN + +start() { + [ -f $DEFAULT ] && . $DEFAULT + [ -d $LOG_D ] || ( mkdir -m 0755 -p $LOG_D && chown $RUN_USER:$RUN_GROUP $LOG_D ) + [ -d $LIB_D ] || ( mkdir -m 0700 -p $LIB_D && chown $RUN_USER:$RUN_GROUP $LIB_D ) + [ -d $RUN_D ] || mkdir -p $RUN_D + [ -f $PID_F ] || ( touch $PID_F && chown $RUN_USER:$RUN_GROUP $PID_F ) + $BIN $OPTIONS +} + +stop() { + [ -f $PID_F ] && kill $(cat $PID_F) +} + diff --git a/net/tor-alpha/patches/001-torrc.patch b/net/tor-alpha/patches/001-torrc.patch new file mode 100644 index 0000000000..255c9a0e77 --- /dev/null +++ b/net/tor-alpha/patches/001-torrc.patch @@ -0,0 +1,22 @@ +--- a/src/config/torrc.sample.in 2010-11-22 19:49:38.000000000 -0800 ++++ a/src/config/torrc.sample.in 2010-12-17 14:49:41.379893002 -0800 +@@ -44,11 +44,11 @@ + ## Uncomment this to start the process in the background... or use + ## --runasdaemon 1 on the command line. This is ignored on Windows; + ## see the FAQ entry if you want Tor to run as an NT service. +-#RunAsDaemon 1 ++RunAsDaemon 1 + + ## The directory for keeping all the keys/etc. By default, we store + ## things in $HOME/.tor on Unix, and in Application Data\tor on Windows. +-#DataDirectory @LOCALSTATEDIR@/lib/tor ++DataDirectory @LOCALSTATEDIR@/lib/tor + + ## The port on which Tor will listen for local connections from Tor + ## controller applications, as documented in control-spec.txt. +@@ -168,3 +168,5 @@ + #BridgeRelay 1 + #ExitPolicy reject *:* + ++User tor ++PidFile @LOCALSTATEDIR@/run/tor.pid