summaryrefslogtreecommitdiff
path: root/package/dnsmasq
diff options
context:
space:
mode:
Diffstat (limited to 'package/dnsmasq')
-rw-r--r--package/dnsmasq/Config.in8
-rw-r--r--package/dnsmasq/Makefile.in3
-rw-r--r--package/dnsmasq/dnsmasq.mk50
-rw-r--r--package/dnsmasq/dnsmasq1-100-bugfix.patch25
-rw-r--r--package/dnsmasq/dnsmasq2-100-config.patch49
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