Browse Source

Merge pull request #311 from hauke/tor

Tor
lilik-openwrt-22.03
Ted Hess 10 years ago
parent
commit
1a0a7d316e
5 changed files with 267 additions and 0 deletions
  1. +87
    -0
      libs/libnatpmp/Makefile
  2. +11
    -0
      libs/libnatpmp/patches/001-install_declspec.patch
  3. +120
    -0
      net/tor/Makefile
  4. +28
    -0
      net/tor/files/tor.init
  5. +21
    -0
      net/tor/patches/001-torrc.patch

+ 87
- 0
libs/libnatpmp/Makefile View File

@ -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 <hauke@hauke-m.de>
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))

+ 11
- 0
libs/libnatpmp/patches/001-install_declspec.patch View File

@ -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

+ 120
- 0
net/tor/Makefile View File

@ -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 <hauke@hauke-m.de>
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))

+ 28
- 0
net/tor/files/tor.init View File

@ -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
}

+ 21
- 0
net/tor/patches/001-torrc.patch View File

@ -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

Loading…
Cancel
Save