# # Copyright (C) 2018 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:=dnscrypt-proxy PKG_SOURCE_DATE:=2019-08-20 PKG_SOURCE_VERSION:=07ac3825b5069adc28e2547c16b1d983a8ed8d80 PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/dyne/dnscrypt-proxy PKG_MIRROR_HASH:=c5c074f52732f14f026002bc48bdffcf0b212092de5798120209b2e6b65fc3e6 PKG_MAINTAINER:=Damiano Renfer PKG_LICENSE:=ISC PKG_LICENSE_FILES:=COPYING PKG_FIXUP:=autoreconf PKG_INSTALL:=1 PKG_BUILD_PARALLEL:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_DNSCRYPT_ENABLE_PLUGINS include $(INCLUDE_DIR)/package.mk define Package/dnscrypt-proxy/Default SECTION:=net CATEGORY:=Network SUBMENU:=IP Addresses and Names URL:=https://github.com/dyne/dnscrypt-proxy endef define Package/dnscrypt-proxy $(call Package/dnscrypt-proxy/Default) 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 define Package/dnscrypt-proxy/description dnscrypt-proxy provides local service which can be used directly as your local resolver or as a DNS forwarder, encrypting and authenticating requests using the DNSCrypt protocol and passing them to an upstream server. The DNSCrypt protocol uses high-speed high-security elliptic-curve cryptography and is very similar to DNSCurve, but focuses on securing communications between a client and its first-level resolver. endef define Package/dnscrypt-proxy-resolvers $(call Package/dnscrypt-proxy/Default) TITLE:=Package with current list of dnscrypt-proxy resolvers endef define Package/dnscrypt-proxy-resolvers/description Package with current list of dnscrypt-proxy resolvers. endef define Package/hostip $(call Package/dnscrypt-proxy/Default) DEPENDS:=+libsodium TITLE:=Resolver to IPv4 or IPv6 addresses endef define Package/hostip/description The DNSCrypt proxy ships with a simple tool named hostip that resolves a name 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 \ $(if $(CONFIG_DNSCRYPT_ENABLE_PLUGINS),,--disable-plugins) \ ) endef TARGET_CFLAGS += \ -fomit-frame-pointer \ -fdata-sections \ -ffunction-sections TARGET_LDFLAGS += \ -Wl,-gc-sections MAKE_FLAGS += \ CFLAGS="$(TARGET_CFLAGS)" \ LDFLAGS="$(TARGET_LDFLAGS)" define Package/dnscrypt-proxy/install $(INSTALL_DIR) $(1)/usr/sbin $(CP) $(PKG_INSTALL_DIR)/usr/sbin/dnscrypt-proxy $(1)/usr/sbin/ $(INSTALL_DIR) $(1)/etc/init.d $(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 $(INSTALL_DIR) $(1)/usr/share/dnscrypt-proxy $(CP) ./files/dnscrypt-resolvers.csv $(1)/usr/share/dnscrypt-proxy/ endef define Package/dnscrypt-proxy/conffiles /etc/config/dnscrypt-proxy endef define Package/hostip/install $(INSTALL_DIR) $(1)/usr/bin $(CP) $(PKG_INSTALL_DIR)/usr/bin/hostip $(1)/usr/bin/ endef $(eval $(call BuildPackage,dnscrypt-proxy)) $(eval $(call BuildPackage,dnscrypt-proxy-resolvers)) $(eval $(call BuildPackage,hostip))