This port is based on dns/dnsmasq 2.62_1,1 and has been updated to 2.63rc2.
Description (by Simon Kelley, the upstream maintainer):
Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server.
It is designed to provide DNS and, optionally, DHCP, to a small network. It
can serve the names of local machines which are not in the global DNS. The
DHCP server integrates with the DNS server and allows machines with
DHCP-allocated addresses to appear in the DNS with names configured either
in each host or in a central configuration file. Dnsmasq supports static and
dynamic DHCP leases and BOOTP/TFTP/PXE for network booting of diskless
machines.
are no more self hosting so we are stuck with 0.25 version while pkgconf provide
the same set of features as 0.27 and a compatible frontend. A symlink to
pkg-config has been added for convenience and compatibility
This also introduces a new macro to use pkgconf in your ports:
USE_PKGCONFIG
it can take the following arguments:
- yes (meaning build only dep)
- build (meaning build only dep)
- run (meaning run only dep)
- both (meaning run and build dep)
From now USE_GNOME= pkgconfig is deprecated in favour of USE_PKGCONFIG
The old gnome macro has been modified to use pkgconf but still the sameway: run
and build dep to avoid large breakage.
While here fix some ports relying on pkg-config but not specifying it, fix some
ports broken because testing wrong .pc files, and fix ports using pkg-config
--version to determine pkg-config version instead of
pkg-config --modversion pkg-config like recommanded by pkg-config
With Hat: portmgr
Exp-runs by: bapt (pointhat-west), beat (pointyhat)
Re-write interface discovery code on *BSD to use getifaddrs. This
is more portable, more straightforward, and allows us to find the
prefix length for IPv6 addresses.
Add ra-names, ra-stateless and slaac keywords for DHCPv6. Dnsmasq
can now synthesise AAAA records for dual-stack hosts which get IPv6
addresses via SLAAC. It is also now possible to use SLAAC and
stateless DHCPv6, and to tell clients to use SLAAC addresses as
well as DHCP ones. Thanks to Dave Taht for help with this.
Add --dhcp-duid to allow DUID-EN uids to be used.
Explicity send DHCPv6 replies to the correct port, instead of relying
on clients to send requests with the correct source address, since
at least one client in the wild gets this wrong. Thanks to Conrda
Kostecki for help tracking this down.
Send a preference value of 255 in DHCPv6 replies when --dhcp-authoritative
is in effect. This tells clients not to wait around for other DHCP
servers.
Better logging of DHCPv6 options.
Add --host-record. Thanks to Rob Zwissler for the suggestion.
Invoke the DHCP script with action "tftp" when a TFTP file transfer
completes. The size of the file, address to which it was sent and
complete pathname are supplied. Note that version 2.60 introduced
some script incompatibilties associated with DHCPv6, and this is a
further change. To be safe, scripts should ignore unknown actions,
and if not IPv6-aware, should exit if the environment variable
DNSMASQ_IAID is set. The use-case for this is to track netboot/install.
Suggestion from Shantanu Gadgil.
Update contrib/port-forward/dnsmasq-portforward to reflect the
above.
Set the environment variable DNSMASQ_LOG_DHCP when running the
script id --log-dhcp is in effect, so that script can taylor their
logging verbosity. Suggestion from Malte Forkel.
Arrange that addresses specified with --listen-address work even
if there is no interface carrying the address. This is chiefly
useful for IPv4 loopback addresses, where any address in 127.0.0.0/8
is a valid loopback address, but normally only 127.0.0.1 appears
on the lo interface. Thanks to Mathieu Trudel-Lapierre for the idea
and initial patch.
Fix crash, introduced in 2.60, when a DHCPINFORM is received from
a network which has no valid dhcp-range. Thanks to Stephane Glondu
for the bug report.
Add a new DHCP lease time keyword, "deprecated" for --dhcp-range.
This is only valid for IPv6, and sets the preffered lease time for
both DHCP and RA to zero. The effect is that clients can continue
to use the address for existing connections, but new connections
will use other addresses, if they exist. This makes hitless renumbering
at least possible.
Fix bug in address6_available() which caused DHCPv6 lease aquisition
to fail if more than one dhcp-range in use.
Provide RDNSS and DNSSL data in router advertisements, using the
settings provided for DHCP options option6:domain-search and
option6:dns-server.
Tweak logo/favicon.ico to add some transparency. Thanks to SamLT
for work on this.
Don't cache data from non-recursive nameservers, since it may
erroneously look like a valid CNAME to a non-exitant name. Thanks
to Ben Winslow for finding this.
Call SO_BINDTODEVICE on the DHCP socket(s) when doing DHCP on exactly
one interface and --bind-interfaces is set. This makes the OpenStack
use-case of one dnsmasq per virtual interface work. This is only
available on Linux; it's not supported on other platforms. Thanks
to Vishvananda Ishaya and the OpenStack team for the suggestion.
Updated French translation. Thanks to Gildas Le Nadan.
Give correct from-cache answers to explict CNAME queries. Thanks
to Rob Zwissler for spotting this.
Add --tftp-lowercase option. Thanks to Oliver Rath for the patch.
Ensure that the DBus DhcpLeaseUpdated events are generated when a
lease goes through INIT_REBOOT state, even if the dhcp-script is
not in use. thanks to Antoaneta-Ecaterina Ene for the patch.
Fix failure of TFTP over IPv4 on OpenBSD platform. Thanks to Brad
Smith for spotting this.
maintainer, wrote in message <4F70361B.7080306@thekelleys.org.uk>:
A bug has been found in dnsmasq 2.60 that can cause crashes. This is
configuration dependent: it either crashes frequently or not at all.
The configuration required is one which allows dnsmasq to receive
DHCPINFORM requests for which there is no valid dhcp-range. This is
rare.
Adding the patch he offers for download.
Feature safe: yes
- The LUA port option enables Lua support for DHCP lease-change scripts
- DHCPv6 support
- IPv6 Router Advertisement support
Changelog: http://www.thekelleys.org.uk/dnsmasq/CHANGELOG
Feature safe: yes
literal name_enable wherever possible, and ${name}_enable
when it's not, to prepare for the demise of set_rcvar().
In cases where I had to hand-edit unusual instances also
modify formatting slightly to be more uniform (and in
some cases, correct). This includes adding some $FreeBSD$
tags, and most importantly moving rcvar= to right after
name= so it's clear that one is derived from the other.
Upgrade to new upstream regression fix release 2.59:
Fix regression in 2.58 which caused failure to start up
with some combinations of dnsmasq config and IPv6 kernel
network config. Thanks to Brielle Bruns for the bug
report.
Improve dnsmasq's behaviour when network interfaces are
still doing duplicate address detection (DAD). Previously,
dnsmasq would wait up to 20 seconds at start-up for the
DAD state to terminate. This is broken for bridge
interfaces on recent Linux kernels, which don't start DAD
until the bridge comes up, and so can take arbitrary
time. The new behaviour lets dnsmasq poll for an arbitrary
time whilst providing service on other interfaces. Thanks
to Stephen Hemminger for pointing out the problem.
Note the 2.59.tar.lzma tarball causes the startup banner to print
2.59rc1 which I deem harmless.
- Start before named, to unbreak named_wait if /etc/resolv.conf points
to dnsmasq (when named is the resolver that dnsmasq forwards to).
Is also more robust/maintenance friendly if other scripts depend on "named".
- Track if the configuration has changed since start, and upgrade reload
to restart by default in that case (can be disabled with
dnsmasq_restart="NO" in /etc/rc.conf[.local]), to work around dnsmasq
shortcoming
- Add a "logstats" action to the rcscript, and document it.
- Document the "reload" action and the new dnsmasq_restart variable.
- Properly quote variable expansions.
- Enhance pkg-message to point to the rcfile for feature documentation.
- Bump PORTREVISION to 2.
Remove support for FreeBSD releases 6.X.
Allow build with IDN but without NLS (this requires that dns/libidn
is also built WITHOUT_NLS) to expose an upstream change. Useful for embedded
devices.
Warn user if this is requested but libidn needs NLS libraries
because in that case dnsmasq inherits the NLS dependencies from libidn.
Remove files/patch-aa, it was a preview patch from a 2.57 test release,
fixing a regression in 2.56 that caused hex constants to be rejected in
the configuratino if they contained the '*' wildcard.
Further upstream changes:
- use own header for DNS protocol, rather than using arpa/nameser.h
- correct ctype.h function argument casts (isdigit(), isxdigit(), etc.)
- Accept extra empty arguments on command line to avoid libvirt breakage.
This release was inadvertently dubbed 2.54 in its logging by Simon Kelley,
so adjust our PORTVERSION to match that, but still build the 2.53 tarball.
Simon will treat 2.53 and 2.54 the same and release 2.55 next time.
http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2010q2/004105.html
Check work/dnsmasq-2.53/src/config.h for VERSION after "make extract" to see.
Approved by: garga (mentor)
Update to new upstream release 2.52. Changelog excerpt below the approval.
Approved by: miwi (mentor)
Upstream changelog excerpt (omitting Linux, Solaris and MacOS X specifics):
[...] Re-read the set of network interfaces when re-loading /etc/resolv.conf
if --bind-interfaces is not set. This handles the case that loopback
interfaces do not exist when dnsmasq is first started.
Tweak the PXE code to support port 4011. This should reduce broadcasts and
make things more reliable when other servers are around. It also improves
inter-operability with certain clients.
Make a pxe-service configuration with no filename or boot service type legal:
this does a local boot. eg. pxe-service=x86PC, "Local boot"
Be more conservative in detecting "A for A" queries. Dnsmasq checks if the
name in a type=A query looks like a dotted-quad IP address and answers the
query itself if so, rather than forwarding it. Previously dnsmasq relied in
the library function inet_addr() to convert addresses, and that will accept
some things which are confusing in this context, like 1.2.3 or even just
1234. Now we only do A for A processing for four decimal numbers delimited by
dots.
[...]
Increased the default limit on number of leases to 1000 (from 150). This is
mainly a defence against DoS attacks, and for the average "one for two class
C networks" installation, IP address exhaustion does that just as well.
Making the limit greater than the number of IP addresses available in such an
installation removes a surprise which otherwise can catch people out.
Removed extraneous trailing space in the value of the DNSMASQ_TIME_REMAINING
DNSMASQ_LEASE_LENGTH and DNSMASQ_LEASE_EXPIRES environment variables. Thanks
to Gildas Le Nadan for spotting this.
Provide the network-id tags for a DHCP transaction to the lease-change script
in the environment variable DNSMASQ_TAGS. A good suggestion from Gildas Le
Nadan.
Add support for RFC3925 "Vendor-Identifying Vendor Options". The syntax looks
like this:
--dhcp-option=vi-encap:<enterprise number>, .........
Add support to --dhcp-match to allow matching against RFC3925
"Vendor-Identifying Vendor Classes". The syntax looks like this:
--dhcp-match=tag,vi-encap<enterprise number>, <value>
Add some application specific code to assist in implementing the Broadband
forum TR069 CPE-WAN specification. The details are in contrib/CPE-WAN/README
Increase the default DNS packet size limit to 4096, as recommended by RFC5625
section 4.4.3. This can be reconfigured using --edns-packet-max if needed.
Thanks to Francis Dupont for pointing this out.
Rewrite query-ids even for DNSSEC signed packets, since this is allowed by
RFC5625 section 4.5.
[...]
Fix link error when including Dbus but excluding DHCP.
Thanks to Oschtan for the bug report.
Updated French translation. Thanks to Gildas Le Nadan.
Updated Polish translation. Thanks to Jan Psota.
Updated Spanish translation. Thanks to Chris Chatham.
- Add pkg-message
- Add NLS and IDN option (currently linked together in one option, this will
be changed in future releases hopefully)
- Properly handle example configuration files
PR: ports/139273
Submitted by: Matthias Andree <matthias.andree@gmx.de> (maintainer)
- load configuration earlier so that we don't run without config file,
analyzed, reported and patch suggested by Fumiyuki Shimizu
- mention /etc/rc.conf.local (as suggested in the Porter's handbook)
- mention dnsmasq_flags for additional command line arguments
- pass pidfile and dnsmasq_conf as arguments to dnsmasq (previously,
overriding dnsmasq_conf had no effect).
* Fix COMMENT to mention TFTP server; shorten it so it fully fits on the
pkg_info list.
PR: 137506
Submitted by: Matthias Andree <matthias.andree@gmx.de> (maintainer)