dnscrypt-proxy: add optional plugins 4190/head
authorTerry Stockert <stockert@inkblotadmirer.me>
Thu, 23 Mar 2017 22:26:44 +0000 (17:26 -0500)
committerTerry Stockert <stockert@inkblotadmirer.me>
Sat, 25 Mar 2017 17:21:18 +0000 (12:21 -0500)
The init script already supports four plugins: dns cache, dns/ip blocking,
ipv6 blocking and dns logging.  If enabled this option installs these four
plugins and also adds libldns as a dependency.  If enabled the total size
increase is around 125 kB.

Signed-off-by: Terry Stockert <stockert@inkblotadmirer.me>
net/dnscrypt-proxy/Config.in [new file with mode: 0755]
net/dnscrypt-proxy/Makefile

diff --git a/net/dnscrypt-proxy/Config.in b/net/dnscrypt-proxy/Config.in
new file mode 100755 (executable)
index 0000000..50d09af
--- /dev/null
@@ -0,0 +1,8 @@
+menu "Configuration"
+       depends on PACKAGE_dnscrypt-proxy
+
+config DNSCRYPT_ENABLE_PLUGINS
+       bool "Enable plugin support (includes libldns and plugins, increases size by 125kB)"
+       default n
+
+endmenu
index 30353d76f37ecf1c2c7ec0a53b14b11045cf78ff..4c4a1f7857d0673ce8a30d9f7eb25e0b6d777b4f 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnscrypt-proxy
 PKG_VERSION:=1.9.4
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.dnscrypt.org/dnscrypt-proxy
@@ -21,6 +21,8 @@ PKG_INSTALL:=1
 
 PKG_MAINTAINER:=Damiano Renfer <damiano.renfer@gmail.com>
 PKG_LICENSE:=ISC
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_DNSCRYPT_ENABLE_PLUGINS
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -34,7 +36,8 @@ endef
 
 define Package/dnscrypt-proxy
   $(call Package/dnscrypt-proxy/Default)
-  DEPENDS:=+libsodium +dnscrypt-proxy-resolvers
+  DEPENDS:=+libsodium +dnscrypt-proxy-resolvers +DNSCRYPT_ENABLE_PLUGINS:libltdl \
+       +DNSCRYPT_ENABLE_PLUGINS:libldns
   TITLE:=A tool for securing communications between a client and a DNS resolver
 endef
 
@@ -68,11 +71,15 @@ define Package/hostip/description
   to IPv4 or IPv6 addresses.
 endef
 
+define Package/dnscrypt-proxy/config
+       source "$(SOURCE)/Config.in"
+endef
+
 define Build/Configure
        $(call Build/Configure/Default, \
        --prefix=/usr \
        --disable-ssp \
-       --disable-plugins \
+       $(if $(CONFIG_DNSCRYPT_ENABLE_PLUGINS),,--disable-plugins) \
        )
 endef
 
@@ -95,6 +102,12 @@ define Package/dnscrypt-proxy/install
        $(INSTALL_BIN) ./files/dnscrypt-proxy.init $(1)/etc/init.d/dnscrypt-proxy
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) ./files/dnscrypt-proxy.config $(1)/etc/config/dnscrypt-proxy
+       $(if $(CONFIG_DNSCRYPT_ENABLE_PLUGINS), \
+               $(INSTALL_DIR) $(1)/usr/lib/dnscrypt-proxy; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/dnscrypt-proxy/libdcplugin_example_cache.so $(1)/usr/lib/dnscrypt-proxy/; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/dnscrypt-proxy/libdcplugin_example_ldns_aaaa_blocking.so $(1)/usr/lib/dnscrypt-proxy/; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/dnscrypt-proxy/libdcplugin_example_ldns_blocking.so $(1)/usr/lib/dnscrypt-proxy/; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/dnscrypt-proxy/libdcplugin_example_logging.so $(1)/usr/lib/dnscrypt-proxy/)
 endef
 
 define Package/dnscrypt-proxy-resolvers/install