aboutsummaryrefslogtreecommitdiffstats
path: root/package/dnsmasq
diff options
context:
space:
mode:
Diffstat (limited to 'package/dnsmasq')
-rw-r--r--package/dnsmasq/Config.in2
-rw-r--r--package/dnsmasq/Makefile48
-rw-r--r--package/dnsmasq/dnsmasq.control8
-rw-r--r--package/dnsmasq/patches/100-config.patch49
4 files changed, 100 insertions, 7 deletions
diff --git a/package/dnsmasq/Config.in b/package/dnsmasq/Config.in
index c0f05088e3..9c7bdef65b 100644
--- a/package/dnsmasq/Config.in
+++ b/package/dnsmasq/Config.in
@@ -1,5 +1,5 @@
config BR2_PACKAGE_DNSMASQ
- bool "dnsmasq"
+ tristate "dnsmasq"
default y
help
A lightweight DNS and DHCP server. It is intended to provide
diff --git a/package/dnsmasq/Makefile b/package/dnsmasq/Makefile
index cd4cae4be9..3b6acb49d9 100644
--- a/package/dnsmasq/Makefile
+++ b/package/dnsmasq/Makefile
@@ -1,9 +1,45 @@
+#############################################################
+#
+# ebtables
+#
+#############################################################
include $(TOPDIR)/rules.mk
-include ./dnsmasq.mk
+PKG_NAME:=dnsmasq
+PKG_VERSION:=2.15
+PKG_RELEASE:=1
+PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_CAT:=zcat
+PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
+PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg
-source: dnsmasq-source
-prepare: $(DNSMASQ_DIR)/.unpacked
-compile: $(DNSMASQ_DIR)/src/dnsmasq
-install: dnsmasq
-clean: dnsmasq-dirclean
+$(DL_DIR)/$(PKG_SOURCE):
+ $(WGET) -P $(DL_DIR) $(PKG_SOURCE_URL)/$(PKG_SOURCE)
+
+$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE)
+ $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(PATCH) $(PKG_BUILD_DIR) ./patches
+ touch $(PKG_BUILD_DIR)/.patched
+
+$(PKG_BUILD_DIR)/src/$(PKG_NAME): $(PKG_BUILD_DIR)/.patched
+ $(MAKE) CC=$(TARGET_CC) CFLAGS="$(TARGET_CFLAGS)" \
+ BINDIR=/usr/sbin MANDIR=/usr/man -C $(PKG_BUILD_DIR)
+
+$(PKG_IPK): $(PKG_BUILD_DIR)/src/$(PKG_NAME)
+ $(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
+ mkdir -p $(PKG_IPK_DIR)/usr/sbin
+ cp $(PKG_BUILD_DIR)/src/$(PKG_NAME) $(PKG_IPK_DIR)/usr/sbin/
+ $(STRIP) $(PKG_IPK_DIR)/usr/sbin/*
+ mkdir -p $(PACKAGE_DIR)
+ $(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR)
+
+source: $(DL_DIR)/$(PKG_SOURCE)
+prepare: $(PKG_BUILD_DIR)/.patched
+compile: $(PKG_IPK)
+install:
+ $(IPKG) install $(PKG_IPK)
+clean:
+ rm -rf $(PKG_BUILD_DIR)
+ rm -f $(PKG_IPK)
diff --git a/package/dnsmasq/dnsmasq.control b/package/dnsmasq/dnsmasq.control
new file mode 100644
index 0000000000..ef6bd0db30
--- /dev/null
+++ b/package/dnsmasq/dnsmasq.control
@@ -0,0 +1,8 @@
+Package: dnsmasq
+Priority: essential
+Section: net
+Version: 2.15-1
+Architecture: mipsel
+Maintainer: Felix Fietkau <nbd@vd-s.ath.cx>
+Source: buildroot internal
+Description: A lightweight DNS and DHCP server
diff --git a/package/dnsmasq/patches/100-config.patch b/package/dnsmasq/patches/100-config.patch
new file mode 100644
index 0000000000..270c22740e
--- /dev/null
+++ b/package/dnsmasq/patches/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