mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
dnsmasq: fix dependency problems of the dnsmasq-full variant.
This patch tries to - Let the DHCPv6 feature depend on CONFIG_IPV6. - Conditionally select libnettle, kmod-ipv6, kmod-ipt-ipset only if the corresponding features are enabled. - Install `trust-anchors.conf` only if DNSSEC is selected. - Add PKG_CONFIG_DEPENDS for the configurable options. - Add a patch to let the Makefile of dnsmasq be aware of changes in COPTS variable. Big thanks goes to Frank Schäfer <fschaefer.oss@googlemail.com> for providing necessary information on connections and dependency relations between these CONFIGs and packages. Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> SVN-Revision: 43851
This commit is contained in:
parent
fe35a1cb8b
commit
6493328c8f
@ -22,6 +22,10 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSI
|
|||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dhcpv6 \
|
||||||
|
CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_dnssec \
|
||||||
|
CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_auth \
|
||||||
|
CONFIG_PACKAGE_dnsmasq_$(BUILD_VARIANT)_ipset
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
@ -46,8 +50,10 @@ endef
|
|||||||
|
|
||||||
define Package/dnsmasq-full
|
define Package/dnsmasq-full
|
||||||
$(call Package/dnsmasq/Default)
|
$(call Package/dnsmasq/Default)
|
||||||
TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPSET)
|
TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPset enabled by default)
|
||||||
DEPENDS:=@IPV6 +kmod-ipv6 +libnettle
|
DEPENDS:=+PACKAGE_dnsmasq_full_dnssec:libnettle \
|
||||||
|
+PACKAGE_dnsmasq_full_dhcpv6:kmod-ipv6 \
|
||||||
|
+PACKAGE_dnsmasq_full_ipset:kmod-ipt-ipset
|
||||||
VARIANT:=full
|
VARIANT:=full
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -64,7 +70,8 @@ endef
|
|||||||
define Package/dnsmasq-full/description
|
define Package/dnsmasq-full/description
|
||||||
$(call Package/dnsmasq/description)
|
$(call Package/dnsmasq/description)
|
||||||
|
|
||||||
This is a variant with DHCPv6, DNSSEC, Authroitative DNS and IPSET support
|
This is a fully configurable variant with DHCPv6, DNSSEC, Authroitative DNS and
|
||||||
|
IPset support enabled by default.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/dnsmasq/conffiles
|
define Package/dnsmasq/conffiles
|
||||||
@ -72,26 +79,24 @@ define Package/dnsmasq/conffiles
|
|||||||
/etc/dnsmasq.conf
|
/etc/dnsmasq.conf
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/dnsmasq/config/Default
|
define Package/dnsmasq-full/config
|
||||||
if PACKAGE_$(1)-$(2)
|
if PACKAGE_dnsmasq-full
|
||||||
config PACKAGE_dnsmasq_$(2)_dhcpv6
|
config PACKAGE_dnsmasq_full_dhcpv6
|
||||||
bool "Build with DHCPv6 support."
|
bool "Build with DHCPv6 support."
|
||||||
|
depends on IPV6
|
||||||
default y
|
default y
|
||||||
config PACKAGE_dnsmasq_$(2)_dnssec
|
config PACKAGE_dnsmasq_full_dnssec
|
||||||
bool "Build with DNSSEC support."
|
bool "Build with DNSSEC support."
|
||||||
default y
|
default y
|
||||||
config PACKAGE_dnsmasq_$(2)_auth
|
config PACKAGE_dnsmasq_full_auth
|
||||||
bool "Build with the facility to act as an authoritative DNS server."
|
bool "Build with the facility to act as an authoritative DNS server."
|
||||||
default y
|
default y
|
||||||
config PACKAGE_dnsmasq_$(2)_ipset
|
config PACKAGE_dnsmasq_full_ipset
|
||||||
bool "Build with ipset support."
|
bool "Build with IPset support."
|
||||||
select PACKAGE_kmod-ipt-ipset
|
|
||||||
default y
|
default y
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
Package/dnsmasq-full/config=$(call Package/dnsmasq/config/Default,dnsmasq,full)
|
|
||||||
|
|
||||||
Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
|
Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
|
||||||
Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles)
|
Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles)
|
||||||
|
|
||||||
@ -137,8 +142,10 @@ Package/dnsmasq-dhcpv6/install = $(Package/dnsmasq/install)
|
|||||||
|
|
||||||
define Package/dnsmasq-full/install
|
define Package/dnsmasq-full/install
|
||||||
$(call Package/dnsmasq/install,$(1))
|
$(call Package/dnsmasq/install,$(1))
|
||||||
|
ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),)
|
||||||
$(INSTALL_DIR) $(1)/usr/share/dnsmasq
|
$(INSTALL_DIR) $(1)/usr/share/dnsmasq
|
||||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,dnsmasq))
|
$(eval $(call BuildPackage,dnsmasq))
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
Index: dnsmasq-2.72/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- dnsmasq-2.72.orig/Makefile 2014-12-30 19:46:10.484921940 +0800
|
||||||
|
+++ dnsmasq-2.72/Makefile 2014-12-30 19:56:39.712926794 +0800
|
||||||
|
@@ -74,6 +74,10 @@
|
||||||
|
hdrs = dnsmasq.h config.h dhcp-protocol.h dhcp6-protocol.h \
|
||||||
|
dns-protocol.h radv-protocol.h ip6addr.h
|
||||||
|
|
||||||
|
+COPT_CONF = $(top)/.copt_$(shell $(CC) -DDNSMASQ_COMPILE_OPTS $(COPTS) -E $(top)/$(SRC)/config.h | \
|
||||||
|
+ ( md5sum 2>/dev/null || md5 ) | cut -f 1 -d ' ')
|
||||||
|
+COPT_CONF_WILD = $(top)/.copt_*
|
||||||
|
+
|
||||||
|
all : $(BUILDDIR)
|
||||||
|
@cd $(BUILDDIR) && $(MAKE) \
|
||||||
|
top="$(top)" \
|
||||||
|
@@ -83,7 +87,7 @@
|
||||||
|
|
||||||
|
mostly_clean :
|
||||||
|
rm -f $(BUILDDIR)/*.mo $(BUILDDIR)/*.pot
|
||||||
|
- rm -f $(BUILDDIR)/.configured $(BUILDDIR)/*.o $(BUILDDIR)/dnsmasq.a $(BUILDDIR)/dnsmasq
|
||||||
|
+ rm -f $(BUILDDIR)/$(COPT_CONF_WILD) $(BUILDDIR)/*.o $(BUILDDIR)/dnsmasq.a $(BUILDDIR)/dnsmasq
|
||||||
|
|
||||||
|
clean : mostly_clean
|
||||||
|
rm -f $(BUILDDIR)/dnsmasq_baseline
|
||||||
|
@@ -139,7 +143,7 @@
|
||||||
|
|
||||||
|
# rules below are targets in recusive makes with cwd=$(BUILDDIR)
|
||||||
|
|
||||||
|
-.configured: $(hdrs)
|
||||||
|
+$(COPT_CONF): $(hdrs)
|
||||||
|
@rm -f *.o
|
||||||
|
@touch $@
|
||||||
|
|
||||||
|
@@ -149,7 +153,7 @@
|
||||||
|
.c.o:
|
||||||
|
$(CC) $(CFLAGS) $(COPTS) $(i18n) $(build_cflags) $(RPM_OPT_FLAGS) -c $<
|
||||||
|
|
||||||
|
-dnsmasq : .configured $(hdrs) $(objs)
|
||||||
|
+dnsmasq : $(COPT_CONF) $(hdrs) $(objs)
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $(objs) $(build_libs) $(LIBS)
|
||||||
|
|
||||||
|
dnsmasq.pot : $(objs:.o=.c) $(hdrs)
|
Loading…
Reference in New Issue
Block a user