1SUMMARY = "Lightweight, easy to configure DNS forwarder and DHCP server" 2HOMEPAGE = "http://www.thekelleys.org.uk/dnsmasq/doc.html" 3SECTION = "net" 4# GPLv3 was added in version 2.41 as license option 5LICENSE = "GPL-2.0-only | GPL-3.0-only" 6LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ 7 file://COPYING-v3;md5=d32239bcb673463ab874e80d47fae504 \ 8 " 9 10DEPENDS += "gettext-native" 11 12#at least versions 2.69 and prior are moved to the archive folder on the server 13SRC_URI = "http://www.thekelleys.org.uk/dnsmasq/${@['archive/', ''][float(d.getVar('PV').split('.')[1]) > 69]}dnsmasq-${PV}.tar.gz \ 14 file://init \ 15 file://dnsmasq.conf \ 16 file://dnsmasq-resolvconf.service \ 17 file://dnsmasq-noresolvconf.service \ 18 file://dnsmasq-resolved.conf \ 19" 20SRC_URI[sha256sum] = "8f6666b542403b5ee7ccce66ea73a4a51cf19dd49392aaccd37231a2c51b303b" 21 22inherit pkgconfig update-rc.d systemd 23 24INITSCRIPT_NAME = "dnsmasq" 25INITSCRIPT_PARAMS = "defaults" 26 27# dnsmasq defaults 28PACKAGECONFIG ?= "auth dhcp dhcp6 dumpfile inotify ipset loop script tftp" 29 30PACKAGECONFIG[auth] = "-DHAVE_AUTH,-DNO_AUTH" 31PACKAGECONFIG[broken-rtc] = "-DHAVE_BROKEN_RTC," 32PACKAGECONFIG[conntrack] = "-DHAVE_CONNTRACK,,libnetfilter-conntrack" 33PACKAGECONFIG[dbus] = "-DHAVE_DBUS,,dbus" 34PACKAGECONFIG[dhcp] = "-DHAVE_DHCP,-DNO_DHCP" 35PACKAGECONFIG[dhcp6] = "-DHAVE_DHCP6,-DNO_DHCP6" 36PACKAGECONFIG[dnssec] = "-DHAVE_DNSSEC,,nettle" 37PACKAGECONFIG[dumpfile] = "-DHAVE_DUMPFILE,-DNO_DUMPFILE" 38PACKAGECONFIG[idn] = "-DHAVE_LIBIDN,,libidn,,,idn2" 39PACKAGECONFIG[idn2] = "-DHAVE_LIBIDN2,,libidn2,,,idn" 40PACKAGECONFIG[inotify] = "-DHAVE_INOTIFY,-DNO_INOTIFY" 41PACKAGECONFIG[ipset] = "-DHAVE_IPSET,-DNO_IPSET" 42PACKAGECONFIG[loop] = "-DHAVE_LOOP,-DNO_LOOP" 43PACKAGECONFIG[lua] = "-DHAVE_LUASCRIPT -DHAVE_SCRIPT,,lua" 44PACKAGECONFIG[nftset] = "-DHAVE_NFTSET,,nftables" 45PACKAGECONFIG[no-gmp] = "-DNO_GMP," 46PACKAGECONFIG[no-id] = "-DNO_ID," 47PACKAGECONFIG[resolvconf] = ",,,resolvconf" 48PACKAGECONFIG[script] = "-DHAVE_SCRIPT,-DNO_SCRIPT" 49PACKAGECONFIG[tftp] = "-DHAVE_TFTP,-DNO_TFTP" 50PACKAGECONFIG[ubus] = "-DHAVE_UBUS,,ubus" 51 52DNSMASQ_LEASEFILE ?= "${localstatedir}/lib/misc/dnsmasq.leases" 53DNSMASQ_CONFFILE ?= "${sysconfdir}/dnsmasq.conf" 54DNSMASQ_RESOLVFILE ?= "${sysconfdir}/resolv.conf" 55 56COPTS = "${PACKAGECONFIG_CONFARGS} \ 57 -DLEASEFILE=\"${DNSMASQ_LEASEFILE}\" \ 58 -DCONFFILE=\"${DNSMASQ_CONFFILE}\" \ 59 -DRESOLVFILE=\"${DNSMASQ_RESOLVFILE}\" \ 60 -DLOCALEDIR=\"${localedir}\"" 61 62EXTRA_OEMAKE = "\ 63 'COPTS=${COPTS}' \ 64 'CFLAGS=${CFLAGS}' \ 65 'LDFLAGS=${LDFLAGS}' \ 66" 67 68SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'resolvconf', 'file://dnsmasq.resolvconf file://99_dnsmasq file://dnsmasq-resolvconf-helper', '', d)}" 69 70do_compile () { 71 oe_runmake all-i18n 72 if ${@bb.utils.contains_any('PACKAGECONFIG', ['dhcp', 'dhcp6'], 'true', 'false', d)}; then 73 # build dhcp_release 74 oe_runmake -C ${S}/contrib/lease-tools 75 fi 76} 77 78do_install () { 79 oe_runmake "PREFIX=${D}${prefix}" \ 80 "BINDIR=${D}${bindir}" \ 81 "MANDIR=${D}${mandir}" \ 82 install-i18n 83 install -d ${D}${sysconfdir}/ ${D}${sysconfdir}/init.d ${D}${sysconfdir}/dnsmasq.d 84 install -m 644 ${WORKDIR}/dnsmasq.conf ${D}${sysconfdir}/ 85 install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/dnsmasq 86 87 install -d ${D}${systemd_unitdir}/system 88 89 if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then 90 install -m 0644 ${WORKDIR}/dnsmasq-resolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service 91 else 92 install -m 0644 ${WORKDIR}/dnsmasq-noresolvconf.service ${D}${systemd_unitdir}/system/dnsmasq.service 93 fi 94 95 if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then 96 install -d ${D}${sysconfdir}/systemd/resolved.conf.d/ 97 install -m 0644 ${WORKDIR}/dnsmasq-resolved.conf ${D}${sysconfdir}/systemd/resolved.conf.d/ 98 fi 99 100 if [ "${@bb.utils.filter('PACKAGECONFIG', 'dhcp', d)}" ]; then 101 install -m 0755 ${S}/contrib/lease-tools/dhcp_release ${D}${bindir} 102 install -m 0755 ${S}/contrib/lease-tools/dhcp_lease_time ${D}${bindir} 103 fi 104 105 if [ "${@bb.utils.filter('PACKAGECONFIG', 'dhcp6', d)}" ]; then 106 install -m 0755 ${S}/contrib/lease-tools/dhcp_release6 ${D}${bindir} 107 fi 108 109 if [ "${@bb.utils.filter('PACKAGECONFIG', 'dbus', d)}" ]; then 110 install -d ${D}${sysconfdir}/dbus-1/system.d 111 install -m 644 dbus/dnsmasq.conf ${D}${sysconfdir}/dbus-1/system.d/ 112 fi 113 114 if [ "${@bb.utils.filter('PACKAGECONFIG', 'resolvconf', d)}" ]; then 115 install -d ${D}${sysconfdir}/resolvconf/update.d/ 116 install -m 0755 ${WORKDIR}/dnsmasq.resolvconf ${D}${sysconfdir}/resolvconf/update.d/dnsmasq 117 118 install -d ${D}${sysconfdir}/default/volatiles 119 install -m 0644 ${WORKDIR}/99_dnsmasq ${D}${sysconfdir}/default/volatiles 120 install -m 0755 ${WORKDIR}/dnsmasq-resolvconf-helper ${D}${bindir} 121 fi 122} 123 124CONFFILES:${PN} = "${sysconfdir}/dnsmasq.conf" 125 126RPROVIDES:${PN} += "${PN}-systemd" 127RREPLACES:${PN} += "${PN}-systemd" 128RCONFLICTS:${PN} += "${PN}-systemd" 129SYSTEMD_SERVICE:${PN} = "dnsmasq.service" 130