tor: add a basic variant, without relay/bridge support
authorRui Salvaterra <rsalvaterra@gmail.com>
Sat, 24 Oct 2020 21:38:52 +0000 (22:38 +0100)
committerRui Salvaterra <rsalvaterra@gmail.com>
Wed, 28 Oct 2020 22:33:53 +0000 (22:33 +0000)
If relay/bridge support isn't required, this variant is about 300 kiB smaller
than the full tor daemon.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
net/tor/Makefile

index 51b246604525261227ef990b9817323745afb0b8..111d84f93825d97972064cf7a1f3a33d99459b98 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tor
 PKG_VERSION:=0.4.4.5
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://dist.torproject.org/ \
@@ -31,6 +31,8 @@ define Package/tor/Default
   CATEGORY:=Network
   URL:=https://www.torproject.org/
   USERID:=tor=52:tor=52
+  DEPENDS:=+libevent2 +libopenssl +libpthread +librt +zlib +libcap
+  TITLE:=Tor routing daemon
 endef
 
 define Package/tor/Default/description
@@ -43,21 +45,36 @@ endef
 
 define Package/tor
 $(call Package/tor/Default)
-  TITLE:=An anonymous Internet communication system
-  DEPENDS:=+libevent2 +libopenssl +libpthread +librt +zlib +libcap
+  TITLE+= (full)
+  CONFLICTS:=tor-basic
+  PROVIDES:=tor-basic
+  VARIANT:=full
 endef
 
 define Package/tor/description
 $(call Package/tor/Default/description)
 
-This package contains the tor daemon.
+This package contains the full tor daemon.
+
+endef
+
+define Package/tor-basic
+$(call Package/tor/Default)
+  TITLE+= (no bridge/relay support)
+  VARIANT:=basic
+endef
+
+define Package/tor-basic/description
+$(call Package/tor/Default/description)
+
+This package contains the basic tor daemon, without bridge/relay support.
 
 endef
 
 define Package/tor-gencert
 $(call Package/tor/Default)
   TITLE:=Tor certificate generation
-  DEPENDS:=+tor
+  DEPENDS:=tor
 endef
 
 define Package/tor-gencert/description
@@ -70,7 +87,7 @@ endef
 define Package/tor-resolve
 $(call Package/tor/Default)
   TITLE:=tor hostname resolve
-  DEPENDS:=+tor
+  DEPENDS:=tor-basic
 endef
 
 define Package/tor-resolve/description
@@ -83,7 +100,7 @@ endef
 define Package/tor-geoip
 $(call Package/tor/Default)
   TITLE:=GeoIP db for tor
-  DEPENDS:=+tor
+  DEPENDS:=tor-basic
 endef
 
 define Package/tor-geoip/description
@@ -100,6 +117,8 @@ define Package/tor/conffiles
 /etc/config/tor
 endef
 
+Package/tor-basic/conffiles = $(Package/tor/conffiles)
+
 CONFIGURE_ARGS += \
        --with-libevent-dir="$(STAGING_DIR)/usr" \
        --with-openssl-dir="$(STAGING_DIR)/usr" \
@@ -114,6 +133,10 @@ CONFIGURE_ARGS += \
        --with-tor-group=tor \
        --enable-pic
 
+ifeq ($(BUILD_VARIANT),basic)
+  CONFIGURE_ARGS += --disable-module-relay
+endif
+
 TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
 TARGET_LDFLAGS += -Wl,--gc-sections -flto
 
@@ -132,6 +155,8 @@ define Package/tor/install
        $(INSTALL_CONF) ./files/tor.conf $(1)/etc/config/tor
 endef
 
+Package/tor-basic/install = $(Package/tor/install)
+
 define Package/tor-gencert/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/tor-gencert $(1)/usr/sbin/
@@ -151,6 +176,7 @@ define Package/tor-geoip/install
 endef
 
 $(eval $(call BuildPackage,tor))
+$(eval $(call BuildPackage,tor-basic))
 $(eval $(call BuildPackage,tor-gencert))
 $(eval $(call BuildPackage,tor-resolve))
 $(eval $(call BuildPackage,tor-geoip))