diff options
Diffstat (limited to 'package/dnsmasq')
-rw-r--r-- | package/dnsmasq/Config.in | 8 | ||||
-rw-r--r-- | package/dnsmasq/Makefile.in | 3 | ||||
-rw-r--r-- | package/dnsmasq/dnsmasq.mk | 50 | ||||
-rw-r--r-- | package/dnsmasq/dnsmasq1-100-bugfix.patch | 25 | ||||
-rw-r--r-- | package/dnsmasq/dnsmasq2-100-config.patch | 49 |
5 files changed, 135 insertions, 0 deletions
diff --git a/package/dnsmasq/Config.in b/package/dnsmasq/Config.in new file mode 100644 index 0000000000..05e40f34eb --- /dev/null +++ b/package/dnsmasq/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_DNSMASQ + bool "dnsmasq" + default n + help + A lightweight DNS and DHCP server. It is intended to provide + coupled DNS and DHCP service to a LAN. + + http://www.thekelleys.org.uk/dnsmasq/ diff --git a/package/dnsmasq/Makefile.in b/package/dnsmasq/Makefile.in new file mode 100644 index 0000000000..36548bd2b1 --- /dev/null +++ b/package/dnsmasq/Makefile.in @@ -0,0 +1,3 @@ +ifeq ($(strip $(BR2_PACKAGE_DNSMASQ)),y) +TARGETS+=dnsmasq +endif diff --git a/package/dnsmasq/dnsmasq.mk b/package/dnsmasq/dnsmasq.mk new file mode 100644 index 0000000000..b1848c6aa8 --- /dev/null +++ b/package/dnsmasq/dnsmasq.mk @@ -0,0 +1,50 @@ +############################################################# +# +# dnsmasq +# +############################################################# + +DNSMASQ_SITE=http://thekelleys.org.uk/dnsmasq +ifeq ($(filter $(TARGETS),dnsmasq1),) +DNSMASQ_SOURCE=dnsmasq-2.15.tar.gz +DNSMASQ_DIR=$(BUILD_DIR)/dnsmasq-2.15 +DNSMASQ_VER=dnsmasq2 +else +DNSMASQ_SOURCE=dnsmasq-1.18.tar.gz +DNSMASQ_DIR=$(BUILD_DIR)/dnsmasq-1.18 +DNSMASQ_VER=dnsmasq1 +endif +DNSMASQ_BINARY=dnsmasq +DNSMASQ_TARGET_BINARY=usr/sbin/dnsmasq + +$(DL_DIR)/$(DNSMASQ_SOURCE): + $(WGET) -P $(DL_DIR) $(DNSMASQ_SITE)/$(DNSMASQ_SOURCE) + +$(DNSMASQ_DIR)/.source: $(DL_DIR)/$(DNSMASQ_SOURCE) + zcat $(DL_DIR)/$(DNSMASQ_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(DNSMASQ_DIR) package/dnsmasq/ \ + $(DNSMASQ_VER)-\*.patch + touch $(DNSMASQ_DIR)/.source + +$(DNSMASQ_DIR)/src/$(DNSMASQ_BINARY): $(DNSMASQ_DIR)/.source + $(MAKE) CC=$(TARGET_CC) CFLAGS="$(TARGET_CFLAGS)" \ + BINDIR=/usr/sbin MANDIR=/usr/man -C $(DNSMASQ_DIR) + +$(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY): $(DNSMASQ_DIR)/src/$(DNSMASQ_BINARY) + $(MAKE) BINDIR=/usr/sbin MANDIR=/usr/man \ + DESTDIR=$(TARGET_DIR) -C $(DNSMASQ_DIR) install + $(STRIP) $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY) + rm -rf $(TARGET_DIR)/usr/man + +dnsmasq: uclibc $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY) + +dnsmasq1: uclibc $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY) + +dnsmasq-source: $(DL_DIR)/$(DNSMASQ_SOURCE) + +dnsmasq-clean: + #$(MAKE) prefix=$(TARGET_DIR)/usr -C $(DNSMASQ_DIR) uninstall + -$(MAKE) -C $(DNSMASQ_DIR) clean + +dnsmasq-dirclean: + rm -rf $(DNSMASQ_DIR) diff --git a/package/dnsmasq/dnsmasq1-100-bugfix.patch b/package/dnsmasq/dnsmasq1-100-bugfix.patch new file mode 100644 index 0000000000..c676a1a398 --- /dev/null +++ b/package/dnsmasq/dnsmasq1-100-bugfix.patch @@ -0,0 +1,25 @@ +--- dnsmasq-1.18/config.h.dist 2004-03-01 22:25:12.000000000 -0600 ++++ dnsmasq-1.18/config.h 2004-03-01 22:26:50.000000000 -0600 +@@ -126,7 +126,9 @@ + + /* Must preceed __linux__ since uClinux defines __linux__ too. */ + #if defined(__uClinux__) || defined(__UCLIBC__) ++#ifndef __UCLIBC_HAS_IPV6__ + #undef HAVE_LINUX_IPV6_PROC ++#endif + #define HAVE_GETOPT_LONG + #undef HAVE_ARC4RANDOM + #define HAVE_RANDOM +diff -x CVS -urN dnsmasq-1.18/option.c dnsmasq.old/option.c +--- dnsmasq-1.18/option.c 2003-11-05 08:22:18.000000000 -0600 ++++ dnsmasq.old/option.c 2004-01-05 23:40:11.000000000 -0600 +@@ -578,8 +578,8 @@ + #ifdef HAVE_IPV6 + else if (tmp->source_addr.sa.sa_family == AF_INET6) + tmp->source_addr.in6.sin6_port = htons(*query_port); +- } + #endif ++ } + } + + if (*if_addrs) diff --git a/package/dnsmasq/dnsmasq2-100-config.patch b/package/dnsmasq/dnsmasq2-100-config.patch new file mode 100644 index 0000000000..270c22740e --- /dev/null +++ b/package/dnsmasq/dnsmasq2-100-config.patch @@ -0,0 +1,49 @@ +diff -ur dnsmasq-2.15.orig/src/config.h dnsmasq-2.15/src/config.h +--- dnsmasq-2.15.orig/src/config.h 2004-10-08 11:41:34.757371880 -0400 ++++ dnsmasq-2.15/src/config.h 2004-10-08 11:43:49.074952504 -0400 +@@ -78,6 +78,11 @@ + /* We assume that systems which don't have IPv6 + headers don't have ntop and pton either */ + ++#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__) ++# undef NO_IPV6 ++# define NO_IPV6 ++#endif ++ + #if defined(INET6_ADDRSTRLEN) && defined(IPV6_V6ONLY) && !defined(NO_IPV6) + # define HAVE_IPV6 + # define ADDRSTRLEN INET6_ADDRSTRLEN +@@ -194,7 +199,7 @@ + /* platform dependent options. */ + + /* Must preceed __linux__ since uClinux defines __linux__ too. */ +-#if defined(__uClinux__) || defined(__UCLIBC__) ++#if defined(__uClinux__) + #undef HAVE_LINUX_IPV6_PROC + #define HAVE_GETOPT_LONG + #undef HAVE_ARC4RANDOM +@@ -208,6 +213,24 @@ + # define NO_FORK + #endif + ++#elif defined(__linux__) && defined(__UCLIBC__) ++# define HAVE_LINUX_IPV6_PROC ++# if defined(__UCLIBC_HAS_GNU_GETOPT__) || \ ++ ((__UCLIBC_MAJOR__==0) && (__UCLIBC_MINOR__==9) && (__UCLIBC_SUBLEVEL__<21)) ++# define HAVE_GETOPT_LONG ++# else ++# undef HAVE_GETOPT_LONG ++# endif ++#undef HAVE_ARC4RANDOM ++#define HAVE_RANDOM ++#define HAVE_DEV_URANDOM ++#define HAVE_DEV_RANDOM ++#undef HAVE_SOCKADDR_SA_LEN ++#undef HAVE_PSELECT ++#if !defined(__ARCH_HAS_MMU__) ++# define NO_FORK ++#endif ++ + /* libc5 - must precede __linux__ too */ + /* Note to build a libc5 binary on a modern Debian system: + install the packages altgcc libc5 and libc5-altdev |