- tor-alpha new package - Signed-off-by: Jacob Appelbaum <jacob@appelbaum.net>
authorScott V. Kamp <outbackdingo@gmail.com>
Sat, 18 Dec 2010 02:01:59 +0000 (02:01 +0000)
committerScott V. Kamp <outbackdingo@gmail.com>
Sat, 18 Dec 2010 02:01:59 +0000 (02:01 +0000)
SVN-Revision: 24656

net/tor-alpha/Makefile [new file with mode: 0644]
net/tor-alpha/files/tor.init [new file with mode: 0644]
net/tor-alpha/patches/001-torrc.patch [new file with mode: 0644]

diff --git a/net/tor-alpha/Makefile b/net/tor-alpha/Makefile
new file mode 100644 (file)
index 0000000..4a96e64
--- /dev/null
@@ -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 (file)
index 0000000..40d4ecf
--- /dev/null
@@ -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 (file)
index 0000000..255c9a0
--- /dev/null
@@ -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