summaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-04-16 10:54:00 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2013-04-19 02:45:27 +0200
commitd48c95da5873a5674c264f788c0f1dda12025a25 (patch)
tree6592862bd5f083b747a00e6ebfe2fdf9a4082946 /meta-networking
parentf40bce43638234c18e09b6a9601c737c21f26993 (diff)
downloadmeta-openembedded-d48c95da5873a5674c264f788c0f1dda12025a25.tar.gz
dnsmasq: move to meta-networking and tweak
* Make dbus a PACKAGECONFIG option and remove dnsmasq-dbus recipe * Set LICENSE to correctly indicate choice of licenses * Set SUMMARY instead of DESCRIPTION Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq.inc48
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq_2.55.bb6
-rwxr-xr-xmeta-networking/recipes-support/dnsmasq/files/dnsmasq.conf293
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/dnsmasq.service13
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/init52
5 files changed, 412 insertions, 0 deletions
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
new file mode 100644
index 000000000..0f5b27325
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
@@ -0,0 +1,48 @@
1SUMMARY = "Lightweight, easy to configure DNS forwarder and DHCP server"
2HOMEPAGE = "http://www.thekelleys.org.uk/dnsmasq/doc.html"
3SECTION = "console/network"
4# GPLv3 was added in version 2.41 as license option
5LICENSE = "GPLv2 | GPLv3"
6LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
7 file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504"
8
9#at least versions 2.15 and prior are moved to the archive folder on the server
10SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV',1).split('.')[1]) > 15]}dnsmasq-${PV}.tar.gz;name=dnsmasq-${PV} \
11 file://init \
12 file://dnsmasq.conf \
13 file://dnsmasq.service \
14"
15
16inherit update-rc.d systemd
17
18INITSCRIPT_NAME = "dnsmasq"
19INITSCRIPT_PARAMS = "defaults"
20
21PACKAGECONFIG ??= ""
22PACKAGECONFIG[dbus] = "COPTS=-DHAVE_DBUS,,dbus"
23EXTRA_OEMAKE = "${EXTRA_OECONF}"
24
25do_install () {
26 oe_runmake "PREFIX=${D}${prefix}" \
27 "BINDIR=${D}${bindir}" \
28 "MANDIR=${D}${mandir}" \
29 install
30 install -d ${D}${sysconfdir}/ ${D}${sysconfdir}/init.d ${D}${sysconfdir}/dnsmasq.d
31 install -m 644 ${WORKDIR}/dnsmasq.conf ${D}${sysconfdir}/
32 install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/dnsmasq
33
34 install -d ${D}${systemd_unitdir}/system
35 install -m 0644 ${WORKDIR}/dnsmasq.service ${D}${systemd_unitdir}/system
36
37 if [ "${@base_contains('PACKAGECONFIG', 'dbus', 'dbus', '', d)}" != "" ]; then
38 install -d ${D}${sysconfdir}/dbus-1/system.d
39 install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/
40 fi
41}
42
43CONFFILES_${PN} = "${sysconfdir}/dnsmasq.conf"
44
45RPROVIDES_${PN} += "${PN}-systemd"
46RREPLACES_${PN} += "${PN}-systemd"
47RCONFLICTS_${PN} += "${PN}-systemd"
48SYSTEMD_SERVICE_${PN} = "dnsmasq.service"
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.55.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.55.bb
new file mode 100644
index 000000000..ae37db739
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.55.bb
@@ -0,0 +1,6 @@
1require dnsmasq.inc
2
3PR = "r3"
4
5SRC_URI[dnsmasq-2.55.md5sum] = "b093d7c6bc7f97ae6fd35d048529232a"
6SRC_URI[dnsmasq-2.55.sha256sum] = "cf63ecf5977f00474cbda98376a9d8743500a82fd98e13f43d7037bce9f9f929"
diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
new file mode 100755
index 000000000..1a198a379
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
@@ -0,0 +1,293 @@
1# Configuration file for dnsmasq.
2#
3# Format is one option per line, legal options are the same
4# as the long options legal on the command line. See
5# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.
6
7# Change these lines if you want dnsmasq to serve MX records.
8# Only one of mx-host and mx-target need be set, the other defaults
9# to the name of the host running dnsmasq.
10#mx-host=
11#mx-target=
12#selfmx
13#localmx
14
15# The following two options make you a better netizen, since they
16# tell dnsmasq to filter out queries which the public DNS cannot
17# answer, and which load the servers (especially the root servers)
18# uneccessarily. If you have a dial-on-demand link they also stop
19# these requests from bringing up the link uneccessarily.
20
21# Never forward plain names (with a dot or domain part)
22domain-needed
23# Never forward addresses in the non-routed address spaces.
24bogus-priv
25
26
27# Uncomment this to filter useless windows-originated DNS requests
28# which can trigger dial-on-demand links needlessly.
29# Note that (amongst other things) this blocks all SRV requests,
30# so don't use it if you use eg Kerberos.
31#filterwin2k
32
33# Change this line if you want dns to get its upstream servers from
34# somewhere other that /etc/resolv.conf
35#resolv-file=
36
37# By default, dnsmasq will send queries to any of the upstream
38# servers it knows about and tries to favour servers to are known
39# to be up. Uncommenting this forces dnsmasq to try each query
40# with each server strictly in the order they appear in
41# /etc/resolv.conf
42#strict-order
43
44# If you don't want dnsmasq to read /etc/resolv.conf or any other
45# file, getting its servers for this file instead (see below), then
46# uncomment this
47#no-resolv
48
49# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv
50# files for changes and re-read them then uncomment this.
51#no-poll
52
53# Add other name servers here, with domain specs if they are for
54# non-public domains.
55#server=/localnet/192.168.0.1
56
57# Add local-only domains here, queries in these domains are answered
58# from /etc/hosts or DHCP only.
59#local=/localnet/
60
61# Add domains which you want to force to an IP address here.
62# The example below send any host in doubleclick.net to a local
63# webserver.
64#address=/doubleclick.net/127.0.0.1
65
66# You no longer (as of version 1.7) need to set these to enable
67# dnsmasq to read /etc/ppp/resolv.conf since dnsmasq now uses the
68# "dip" group to achieve this.
69#user=
70#group=
71
72# If you want dnsmasq to listen for requests only on specified interfaces
73# (and the loopback) give the name of the interface (eg eth0) here.
74# Repeat the line for more than one interface.
75#interface=
76# Or you can specify which interface _not_ to listen on
77#except-interface=
78# Or which to listen on by address (remember to include 127.0.0.1 if
79# you use this.)
80#listen-address=
81
82# On systems which support it, dnsmasq binds the wildcard address,
83# even when it is listening on only some interfaces. It then discards
84# requests that it shouldn't reply to. This has the advantage of
85# working even when interfaces come and go and change address. If you
86# want dnsmasq to really bind only the interfaces it is listening on,
87# uncomment this option. About the only time you may need this is when
88# running another nameserver on the same machine.
89#bind-interfaces
90
91# If you don't want dnsmasq to read /etc/hosts, uncomment the
92# following line.
93#no-hosts
94# or if you want it to read another file, as well as /etc/hosts, use
95# this.
96#addn-hosts=/etc/banner_add_hosts
97
98# Set this (and domain: see below) if you want to have a domain
99# automatically added to simple names in a hosts-file.
100#expand-hosts
101
102# Set the domain for dnsmasq. this is optional, but if it is set, it
103# does the following things.
104# 1) Allows DHCP hosts to have fully qualified domain names, as long
105# as the domain part matches this setting.
106# 2) Sets the "domain" DHCP option thereby potentially setting the
107# domain of all systems configured by DHCP
108# 3) Provides the domain part for "expand-hosts"
109#domain=thekelleys.org.uk
110
111# Uncomment this to enable the integrated DHCP server, you need
112# to supply the range of addresses available for lease and optionally
113# a lease time. If you have more than one network, you will need to
114# repeat this for each network on which you want to supply DHCP
115# service.
116#dhcp-range=192.168.0.50,192.168.0.150,12h
117dhcp-range=10.0.0.10,10.0.0.200,2h
118
119# This is an example of a DHCP range where the netmask is given. This
120# is needed for networks we reach the dnsmasq DHCP server via a relay
121# agent. If you don't know what a DHCP relay agent is, you probably
122# don't need to worry about this.
123#dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
124
125# This is an example of a DHCP range with a network-id, so that
126# some DHCP options may be set only for this network.
127#dhcp-range=red,192.168.0.50,192.168.0.150
128
129# Supply parameters for specified hosts using DHCP. There are lots
130# of valid alternatives, so we will give examples of each. Note that
131# IP addresses DO NOT have to be in the range given above, they just
132# need to be on the same network. The order of the parameters in these
133# do not matter, it's permissble to give name,adddress and MAC in any order
134
135# Always allocate the host with ethernet address 11:22:33:44:55:66
136# The IP address 192.168.0.60
137#dhcp-host=11:22:33:44:55:66,192.168.0.60
138
139# Always set the name of the host with hardware address
140# 11:22:33:44:55:66 to be "fred"
141#dhcp-host=11:22:33:44:55:66,fred
142
143# Always give the host with ethernet address 11:22:33:44:55:66
144# the name fred and IP address 192.168.0.60 and lease time 45 minutes
145#dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m
146
147# Give the machine which says it's name is "bert" IP address
148# 192.168.0.70 and an infinite lease
149#dhcp-host=bert,192.168.0.70,infinite
150
151# Always give the host with client identifier 01:02:02:04
152# the IP address 192.168.0.60
153#dhcp-host=id:01:02:02:04,192.168.0.60
154
155# Always give the host with client identifier "marjorie"
156# the IP address 192.168.0.60
157#dhcp-host=id:marjorie,192.168.0.60
158
159# Enable the address given for "judge" in /etc/hosts
160# to be given to a machine presenting the name "judge" when
161# it asks for a DHCP lease.
162#dhcp-host=judge
163
164# Never offer DHCP service to a machine whose ethernet
165# address is 11:22:33:44:55:66
166#dhcp-host=11:22:33:44:55:66,ignore
167
168# Ignore any client-id presented by the machine with ethernet
169# address 11:22:33:44:55:66. This is useful to prevent a machine
170# being treated differently when running under different OS's or
171# between PXE boot and OS boot.
172#dhcp-host=11:22:33:44:55:66,id:*
173
174# Send extra options which are tagged as "red" to
175# the machine with ethernet address 11:22:33:44:55:66
176#dhcp-host=11:22:33:44:55:66,net:red
177
178# Send extra options which are tagged as "red" to any machine whose
179# DHCP vendorclass string includes the substring "Linux"
180#dhcp-vendorclass=red,Linux
181
182# Send extra options which are tagged as "red" to any machine one
183# of whose DHCP userclass strings includes the substring "accounts"
184#dhcp-userclass=red,accounts
185
186# If this line is uncommented, dnsmasq will read /etc/ethers and act
187# on the ethernet-address/IP pairs found there just as if they had
188# been given as --dhcp-host options. Useful if you keep
189# MAC-address/host mappings there for other purposes.
190#read-ethers
191
192# Send options to hosts which ask for a DHCP lease.
193# See RFC 2132 for details of available options.
194# Note that all the common settings, such as netmask and
195# broadcast address, DNS server and default route, are given
196# sane defaults by dnsmasq. You very likely will not need any
197# any dhcp-options. If you use Windows clients and Samba, there
198# are some options which are recommended, they are detailed at the
199# end of this section.
200# For reference, the common options are:
201# subnet mask - 1
202# default router - 3
203# DNS server - 6
204# broadcast address - 28
205
206# Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5
207#dhcp-option=42,192.168.0.4,10.10.0.5
208
209# Set the NTP time server address to be the same machine as
210# is running dnsmasq
211#dhcp-option=42,0.0.0.0
212
213# Set the NIS domain name to "welly"
214#dhcp-option=40,welly
215
216# Set the default time-to-live to 50
217#dhcp-option=23,50
218
219# Set the "all subnets are local" flag
220#dhcp-option=27,1
221
222# Send the etherboot magic flag and then etherboot options (a string).
223#dhcp-option=128,e4:45:74:68:00:00
224#dhcp-option=129,NIC=eepro100
225
226# Specify an option which will only be sent to the "red" network
227# (see dhcp-range for the declaration of the "red" network)
228#dhcp-option=red,42,192.168.1.1
229
230# The following DHCP options set up dnsmasq in the same way as is specified
231# for the ISC dhcpcd in
232# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt
233# adapted for a typical dnsmasq installation where the host running
234# dnsmasq is also the host running samba.
235# you may want to uncomment them if you use Windows clients and Samba.
236#dhcp-option=19,0 # option ip-forwarding off
237#dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s)
238#dhcp-option=45,0.0.0.0 # netbios datagram distribution server
239#dhcp-option=46,8 # netbios node type
240#dhcp-option=47 # empty netbios scope.
241
242
243# Set the boot filename and tftpd server name and address
244# for BOOTP. You will only need this is you want to
245# boot machines over the network.
246#dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3
247
248# Set the limit on DHCP leases, the default is 150
249#dhcp-lease-max=150
250
251# The DHCP server needs somewhere on disk to keep its lease database.
252# This defaults to a sane location, but if you want to change it, use
253# the line below.
254#dhcp-leasefile=/var/lib/misc/dnsmasq.leases
255
256# Set the cachesize here.
257#cache-size=150
258
259# If you want to disable negative caching, uncomment this.
260#no-negcache
261
262# Normally responses which come form /etc/hosts and the DHCP lease
263# file have Time-To-Live set as zero, which conventionally means
264# do not cache further. If you are happy to trade lower load on the
265# server for potentially stale date, you can set a time-to-live (in
266# seconds) here.
267#local-ttl=
268
269# If you want dnsmasq to detect attempts by Verisign to send queries
270# to unregistered .com and .net hosts to its sitefinder service and
271# have dnsmasq instead return the correct NXDOMAIN response, uncomment
272# this line. You can add similar lines to do the same for other
273# registries which have implemented wildcard A records.
274#bogus-nxdomain=64.94.110.11
275
276# If you want to fix up DNS results from upstream servers, use the
277# alias option. This only works for IPv4.
278# This alias makes a result of 1.2.3.4 appear as 5.6.7.8
279#alias=1.2.3.4,5.6.7.8
280# and this maps 1.2.3.x to 5.6.7.x
281#alias=1.2.3.0,5.6.7.0,255.255.255.0
282
283# For debugging purposes, log each DNS query as it passes through
284# dnsmasq.
285#log-queries
286
287# Include a another lot of configuration options.
288#conf-file=/etc/dnsmasq.more.conf
289
290
291
292
293
diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service
new file mode 100644
index 000000000..549e15e2b
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.service
@@ -0,0 +1,13 @@
1[Unit]
2Description=DNS forwarder and DHCP server
3After=network.target
4
5[Service]
6Type=forking
7PIDFile=/run/dnsmasq.pid
8ExecStart=/usr/bin/dnsmasq -x /run/dnsmasq.pid
9ExecReload=/bin/kill -HUP $(/bin/cat /run/dnsmasq.pid)
10
11[Install]
12WantedBy=multi-user.target
13
diff --git a/meta-networking/recipes-support/dnsmasq/files/init b/meta-networking/recipes-support/dnsmasq/files/init
new file mode 100644
index 000000000..d1aa9e517
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/files/init
@@ -0,0 +1,52 @@
1#!/bin/sh
2DAEMON=/usr/bin/dnsmasq
3NAME=dnsmasq
4DESC="DNS forwarder and DHCP server"
5ARGS="-7 /etc/dnsmasq.d"
6
7test -f $DAEMON || exit 0
8
9set -e
10
11case "$1" in
12 start)
13 echo -n "starting $DESC: $NAME... "
14 test -d /var/lib/misc/ || mkdir /var/lib/misc/
15 start-stop-daemon -S -x $DAEMON -- $ARGS
16 echo "done."
17 ;;
18 stop)
19 echo -n "stopping $DESC: $NAME... "
20 start-stop-daemon -K -x $DAEMON
21 echo "done."
22 ;;
23 status)
24 echo -n "dnsmasq "
25 start-stop-daemon -q -K -t -x $DAEMON
26 RET=$?
27 if [ "$RET" = "0" ]; then
28 PID=`cat /var/run/dnsmasq.pid`
29 echo "($PID) is running"
30 else
31 echo "is not running"
32 exit $RET
33 fi
34 ;;
35 restart)
36 echo "restarting $DESC: $NAME... "
37 $0 stop
38 $0 start
39 echo "done."
40 ;;
41 reload)
42 echo -n "reloading $DESC: $NAME... "
43 killall -HUP $(basename ${DAEMON})
44 echo "done."
45 ;;
46 *)
47 echo "Usage: $0 {start|stop|status|restart|reload}"
48 exit 1
49 ;;
50esac
51
52exit 0