Author: nbd Date: 2015-01-05 14:03:48 +0100 (Mon, 05 Jan 2015) New Revision: 43851
Added: trunk/package/network/services/dnsmasq/patches/200-let-makefile-be-aware-of-config-changes.patch Modified: trunk/package/network/services/dnsmasq/Makefile Log: 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?\195?\131?\194?\164fer <[email protected]> for providing necessary information on connections and dependency relations between these CONFIGs and packages. Signed-off-by: Yousong Zhou <[email protected]> Modified: trunk/package/network/services/dnsmasq/Makefile =================================================================== --- trunk/package/network/services/dnsmasq/Makefile 2015-01-05 13:03:40 UTC (rev 43850) +++ trunk/package/network/services/dnsmasq/Makefile 2015-01-05 13:03:48 UTC (rev 43851) @@ -22,6 +22,10 @@ PKG_INSTALL:=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 @@ -46,8 +50,10 @@ define Package/dnsmasq-full $(call Package/dnsmasq/Default) - TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPSET) - DEPENDS:=@IPV6 +kmod-ipv6 +libnettle + TITLE += (with DNSSEC, DHCPv6, Auth DNS, IPset enabled by default) + DEPENDS:=+PACKAGE_dnsmasq_full_dnssec:libnettle \ + +PACKAGE_dnsmasq_full_dhcpv6:kmod-ipv6 \ + +PACKAGE_dnsmasq_full_ipset:kmod-ipt-ipset VARIANT:=full endef @@ -64,7 +70,8 @@ define Package/dnsmasq-full/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 define Package/dnsmasq/conffiles @@ -72,26 +79,24 @@ /etc/dnsmasq.conf endef -define Package/dnsmasq/config/Default - if PACKAGE_$(1)-$(2) - config PACKAGE_dnsmasq_$(2)_dhcpv6 - bool "Build with DHCPv6 support." - default y - config PACKAGE_dnsmasq_$(2)_dnssec - bool "Build with DNSSEC support." - default y - config PACKAGE_dnsmasq_$(2)_auth - bool "Build with the facility to act as an authoritative DNS server." - default y - config PACKAGE_dnsmasq_$(2)_ipset - bool "Build with ipset support." - select PACKAGE_kmod-ipt-ipset - default y - endif +define Package/dnsmasq-full/config + if PACKAGE_dnsmasq-full + config PACKAGE_dnsmasq_full_dhcpv6 + bool "Build with DHCPv6 support." + depends on IPV6 + default y + config PACKAGE_dnsmasq_full_dnssec + bool "Build with DNSSEC support." + default y + config PACKAGE_dnsmasq_full_auth + bool "Build with the facility to act as an authoritative DNS server." + default y + config PACKAGE_dnsmasq_full_ipset + bool "Build with IPset support." + default y + endif endef -Package/dnsmasq-full/config=$(call Package/dnsmasq/config/Default,dnsmasq,full) - Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles) Package/dnsmasq-full/conffiles = $(Package/dnsmasq/conffiles) @@ -137,8 +142,10 @@ define Package/dnsmasq-full/install $(call Package/dnsmasq/install,$(1)) +ifneq ($(CONFIG_PACKAGE_dnsmasq_full_dnssec),) $(INSTALL_DIR) $(1)/usr/share/dnsmasq $(INSTALL_DATA) $(PKG_BUILD_DIR)/trust-anchors.conf $(1)/usr/share/dnsmasq +endif endef $(eval $(call BuildPackage,dnsmasq)) Added: trunk/package/network/services/dnsmasq/patches/200-let-makefile-be-aware-of-config-changes.patch =================================================================== --- trunk/package/network/services/dnsmasq/patches/200-let-makefile-be-aware-of-config-changes.patch (rev 0) +++ trunk/package/network/services/dnsmasq/patches/200-let-makefile-be-aware-of-config-changes.patch 2015-01-05 13:03:48 UTC (rev 43851) @@ -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) _______________________________________________ openwrt-commits mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits
