From d013ed39e6756dafab784246a5ad130a0775f94e Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 14 Sep 2014 14:30:30 +0200 Subject: [PATCH 1/2] libnatpmp: add from oldpackages This adds libnatpmp from old packages and updates it to version 20140401. This new version has to install the header file declspec.h. libnatpmp is needed for tor. Signed-off-by: Hauke Mehrtens --- libs/libnatpmp/Makefile | 87 +++++++++++++++++++ .../patches/001-install_declspec.patch | 11 +++ 2 files changed, 98 insertions(+) create mode 100644 libs/libnatpmp/Makefile create mode 100644 libs/libnatpmp/patches/001-install_declspec.patch diff --git a/libs/libnatpmp/Makefile b/libs/libnatpmp/Makefile new file mode 100644 index 000000000..b9e49e206 --- /dev/null +++ b/libs/libnatpmp/Makefile @@ -0,0 +1,87 @@ +# +# Copyright (C) 2011-2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=libnatpmp +PKG_VERSION:=20140401 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://miniupnp.free.fr/files +PKG_MD5SUM:=7c9a7c76e200ead4e6447fe4b105f676 +PKG_MAINTAINER:=Hauke Mehrtens +PKG_LICENSE:=BSD-3c +PKG_LICENSE_FILE:=LICENSE + +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/libnatpmp/Default + TITLE:=NAT Port Mapping Protocol (NAT-PMP) + URL:=http://miniupnp.free.fr/libnatpmp.html +endef + +define Package/libnatpmp/Default/description + libnatpmp is an attempt to make a portable and fully compliant implementation + of the protocol for the client side. It is based on non blocking sockets and + all calls of the API are asynchronous. It is therefore very easy to integrate + the NAT-PMP code to any event driven code. +endef + +define Package/libnatpmp + $(call Package/libnatpmp/Default) + SECTION:=libs + CATEGORY:=Libraries + TITLE+= library +endef + +define Package/libnatpmp/description + $(call Package/libnatpmp/Default/description) + This package contains the shared library. +endef + +define Package/natpmpc + $(call Package/libnatpmp/Default) + SECTION:=net + CATEGORY:=Network + SUBMENU:=Firewall + TITLE+= client + DEPENDS:=+libnatpmp +endef + +define Package/natpmpc/description + $(call Package/libnatpmp/Default/description) + This package contains the natpmp client. +endef + +MAKE_FLAGS += \ + COPTS="$(TARGET_CFLAGS)" \ + PREFIX="$(PKG_INSTALL_DIR)" \ + OS="Linux" + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/declspec.h $(1)/usr/include/ + $(CP) $(PKG_INSTALL_DIR)/usr/include/natpmp.h $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnatpmp*.{so*,a} $(1)/usr/lib/ +endef + +define Package/libnatpmp/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libnatpmp.so.* $(1)/usr/lib/ +endef + +define Package/natpmpc/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/natpmpc $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,libnatpmp)) +$(eval $(call BuildPackage,natpmpc)) diff --git a/libs/libnatpmp/patches/001-install_declspec.patch b/libs/libnatpmp/patches/001-install_declspec.patch new file mode 100644 index 000000000..d79dd3f6d --- /dev/null +++ b/libs/libnatpmp/patches/001-install_declspec.patch @@ -0,0 +1,11 @@ +--- a/Makefile ++++ b/Makefile +@@ -56,7 +56,7 @@ else + endif + endif + +-HEADERS = natpmp.h ++HEADERS = natpmp.h declspec.h + + EXECUTABLES = testgetgateway natpmpc-shared natpmpc-static + From b801586d408b634c2ac5f1e042c78cc4e4e84063 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 14 Sep 2014 14:18:29 +0200 Subject: [PATCH 2/2] tor: add from oldpackages This adds tor from old packages and updates it to version 0.2.4.23. Signed-off-by: Hauke Mehrtens --- net/tor/Makefile | 120 ++++++++++++++++++++++++++++++++ net/tor/files/tor.init | 28 ++++++++ net/tor/patches/001-torrc.patch | 21 ++++++ 3 files changed, 169 insertions(+) create mode 100644 net/tor/Makefile create mode 100644 net/tor/files/tor.init create mode 100644 net/tor/patches/001-torrc.patch diff --git a/net/tor/Makefile b/net/tor/Makefile new file mode 100644 index 000000000..36b920692 --- /dev/null +++ b/net/tor/Makefile @@ -0,0 +1,120 @@ +# +# Copyright (C) 2008-2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tor +PKG_VERSION:=0.2.4.23 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://www.torproject.org/dist \ + https://archive.torproject.org/tor-package-archive +PKG_MD5SUM:=9e39928e310612c3bffee727f554c63f +PKG_MAINTAINER:=Hauke Mehrtens +PKG_LICENSE_FILE:=LICENSE + +PKG_BUILD_DEPENDS:=libminiupnpc libnatpmp +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/tor/Default + SECTION:=net + CATEGORY:=Network + URL:=https://www.torproject.org/ +endef + +define Package/tor/Default/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 +$(call Package/tor/Default) + TITLE:=An anonymous Internet communication system + DEPENDS:=+libevent2 +libopenssl +libpthread +librt +SSP_SUPPORT:libssp +endef + +define Package/tor/description +$(call Package/tor/Default/description) + This package contains the tor daemon. +endef + +define Package/tor-fw-helper +$(call Package/tor/Default) + TITLE:=Firewall helper for tor + DEPENDS:=+tor +libminiupnpc +libnatpmp +endef + +define Package/tor-fw-helper/description +$(call Package/tor/Default/description) + This package contains a helper for automatically configuring port forwarding. +endef + +define Package/tor-geoip +$(call Package/tor/Default) + TITLE:=GeoIP db for tor + DEPENDS:=+tor +endef + +define Package/tor-geoip/description +$(call Package/tor/Default/description) + This package contains a GeoIP database mapping IP addresses to countries. +endef + +define Package/tor/conffiles +/etc/tor/torrc +endef + +CONFIGURE_ARGS += \ + --with-libevent-dir="$(STAGING_DIR)/usr" \ + --with-ssl-dir="$(STAGING_DIR)/usr" \ + --enable-upnp \ + --with-libminiupnpc-dir="$(STAGING_DIR)/usr" \ + --enable-nat-pmp \ + --with-libnatpmp-dir="$(STAGING_DIR)/usr" \ + --disable-asciidoc + +ifneq ($(CONFIG_SSP_SUPPORT),y) + CONFIGURE_ARGS += \ + --disable-gcc-hardening + MAKE_FLAGS += \ + CFLAGS="$(TARGET_CFLAGS)" +else + MAKE_FLAGS += \ + CFLAGS="$(TARGET_CFLAGS) -fPIC" +endif + +CONFIGURE_VARS += \ + CROSS_COMPILE="yes" + +define Package/tor/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 + +define Package/tor-fw-helper/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tor-fw-helper $(1)/usr/bin/ +endef + +define Package/tor-geoip/install + $(INSTALL_DIR) $(1)/usr/share/tor + $(CP) $(PKG_INSTALL_DIR)/usr/share/tor/geoip $(1)/usr/share/tor/ +endef + +$(eval $(call BuildPackage,tor)) +$(eval $(call BuildPackage,tor-fw-helper)) +$(eval $(call BuildPackage,tor-geoip)) diff --git a/net/tor/files/tor.init b/net/tor/files/tor.init new file mode 100644 index 000000000..7c548b40b --- /dev/null +++ b/net/tor/files/tor.init @@ -0,0 +1,28 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2006-2011 OpenWrt.org + +START=50 +STOP=50 + +USE_PROCD=1 + +start_service() { + user_exists tor 52 || user_add tor 52 52 /var/lib/tor + group_exists tor 52 || group_add tor 52 + [ -f /var/run/tor.pid ] || { + touch /var/run/tor.pid + chown tor:tor /var/run/tor.pid + } + [ -d /var/lib/tor ] || { + mkdir -m 0755 -p /var/lib/tor + chmod 0700 /var/lib/tor + chown tor:tor /var/lib/tor + } + [ -d /var/log/tor ] || { + mkdir -m 0755 -p /var/log/tor + chown tor:tor /var/log/tor + } + procd_open_instance + procd_set_param command /usr/sbin/tor --runasdaemon 0 + procd_close_instance +} diff --git a/net/tor/patches/001-torrc.patch b/net/tor/patches/001-torrc.patch new file mode 100644 index 000000000..988cb8e5a --- /dev/null +++ b/net/tor/patches/001-torrc.patch @@ -0,0 +1,21 @@ +--- a/src/config/torrc.sample.in ++++ b/src/config/torrc.sample.in +@@ -45,11 +45,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. +@@ -187,3 +187,4 @@ + ## address manually to your friends, uncomment this line: + #PublishServerDescriptor 0 + ++User tor