[BACK]Return to Makefile.common CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / net / isc-dhcp4

File: [cvs.NetBSD.org] / pkgsrc / net / isc-dhcp4 / Makefile.common (download)

Revision 1.40, Thu Jan 23 08:11:27 2020 UTC (10 months ago) by taca
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1
Changes since 1.39: +5 -4 lines

isc-dhcp: update ISC DHCP to 4.4.2

Update isc-dhcp4, isc-dhclient4, isc-dhcpd4 and isc-dhcrelay4 to 4.4.2.
pkgsrc change: change LICENSE to mpl-2.0.

Here is quote of RELNOTES:

                Internet Systems Consortium DHCP Distribution
                            Version 4.4.2
                            22 January 2020
                             Release Notes

                              NEW FEATURES

Please note that that ISC DHCP is now licensed under the Mozilla Public License,
MPL 2.0. Please see https://www.mozilla.org/en-US/MPL/2.0/ to read the MPL 2.0
license terms.

While release 4.4.2 is primarily a maintenance release that addresses a number
of defects, it does introduce a few new features:

- Keama - Keama is a migration utility that assists in converting ISC DHCP
  server configuration files to Kea configuration files.  It is found in the
  keama subdirectory and includes a README.md file with instructions on how
  to build it as well as a manpage on its usage.

- Two new server parameters related to ping checking were added:

1. ping-cltt-secs which allows the user to specify the number of seconds
   that must elapse since CLTT before a ping check is conducted.

2. ping-timeout-ms which allows the user to specify the amount of time the
   server waits for a ping-check response in milliseconds rather than in
   seconds.

In general, the areas of focus for ISC DHCP 4.4 were:

1. Dynamic DNS additions
2. dhclient improvements
3. Support for dynamic shared libraries

Dynamic DNS Improvements:

- We added three new server configuration parameters which influence DDNS
  conflict resolution:

    1. ddns-dual-stack-mixed-mode - alters DNS conflict resolution behavior
    to mitigate issues with non-compliant clients in dual stack environments.

    2. ddns-guard-id-must-match - relaxes the DHCID RR client id matching
    requirement of DNS conflict resolution.

    3. ddns-other-guard-is-dynamic - alters dual-stack-mixed-mode behavior to
    allow unguarded DNS entries to be overwritten in certain cases

- The server now honors update-static-leases parameter for static DHCPv6
  hosts.

dhclient Improvements:

  - We've added three command line parameters to dhclient:

    1. --prefix-len-hint - directs dhclient to use the given length as
    the prefix length hint when requesting prefixes

    2. --decline-wait-time - instructs the client to wait the given number
    of seconds after declining an IPv4 address before issuing a discover

    3. --address-prefix-len - specifies the prefix length passed by dhclient
    into the client script (via the environment variable ip6_prefixlen) with
    each IPv6 address.  We added this parameter because we have changed the
    default value from 64 to 128 in order to be compliant with RFC3315bis
    draft (-09, page 64) and RFC5942, Section 4, point 1.
    **WARNING**: The new default value of 128 may not be backwardly compatible
    with your environment. If you are operating without a router, such as
    between VMs on a host, you may find they cannot see each other with prefix
    length of 128. In such cases, you'll need to either provide routing or use
    the command line parameter to set the value to 64. Alternatively you may
    change the default at compile time by setting DHCLIENT_DEFAULT_PREFIX_LEN
    in includes/site.h.

  - dhclient will now generate a DHCPv6 DECLINE message when the client script
    indicates a DAD failure

Dynamic shared library support:

  Configure script, configure.ac+lt, which supports libtool is now provided
  with the source tar ball.  This script can be used to configure ISC DHCP
  to build with libtool and thus use dynamic shared libraries.

Other Highlights:

 - The server now supports dhcp-cache-threshold for DHCPv6 operations
 - The server now supports DHPv6 address allocation based on EUI-64 DUIDs
 - Experimental support for alternate relay port in the both the server
   and relay for IPv4, IPv6 and 4o6 (see: draft-ietf-dhc-relay-port-10.txt)

# $NetBSD: Makefile.common,v 1.40 2020/01/23 08:11:27 taca Exp $
#
# used by net/isc-dhcp4/Makefile
# used by net/isc-dhcpd4/Makefile
# used by net/isc-dhclient4/Makefile
# used by net/isc-dhcrelay4/Makefile

DISTNAME=		dhcp-${VERSION}
DHVER=			${DISTNAME:S/dhcp-//:S/-P/p/}
CATEGORIES=		net
MASTER_SITES=		ftp://ftp.isc.org/isc/dhcp/${VERSION}/
MASTER_SITES+=		http://ftp.isc.org/isc/dhcp/${VERSION}/

MAINTAINER=		pkgsrc-users@NetBSD.org
HOMEPAGE=		https://www.isc.org/dhcp/
LICENSE=		mpl-2.0

CONFLICTS+=		isc-dhcp-base-3.*

VERSION=		4.4.2

.include "../../mk/bsd.prefs.mk"

GNU_CONFIGURE=		yes
DHCP_HOME?=		${VARBASE}/db/isc-dhcp
DHCP_PID?=		${VARBASE}/run/isc-dhcp
PKG_SYSCONFSUBDIR=	dhcp

USE_TOOLS+=		gmake gunzip gzip tar
USE_LANGUAGES+=		c99 c++

PATCHDIR=		${.CURDIR}/../../net/isc-dhcp4/patches
DISTINFO_FILE=		${.CURDIR}/../../net/isc-dhcp4/distinfo
EGDIR=			${PREFIX}/share/examples/${PKGBASE}
BUILD_DEFS+=		VARBASE DHCP_HOME DHCP_PID

CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+=	--with-srv-lease-file=${DHCP_HOME}/dhcpd.leases
CONFIGURE_ARGS+=	--with-cli-lease-file=${DHCP_HOME}/dhclient.leases
CONFIGURE_ARGS+=	--with-srv-pid-file=${DHCP_PID}/isc-dhcpd.pid
CONFIGURE_ARGS+=	--with-cli-pid-file=${DHCP_PID}/isc-dhclient.pid
CONFIGURE_ARGS+=	--with-relay-pid-file=${DHCP_PID}/isc-dhcrelay.pid
CONFIGURE_ARGS+=	--with-srv6-lease-file=${DHCP_HOME}/dhcpd6.leases
CONFIGURE_ARGS+=	--with-cli6-lease-file=${DHCP_HOME}/dhclient6.leases
CONFIGURE_ARGS+=	--with-srv6-pid-file=${DHCP_PID}/isc-dhcpd6.pid
CONFIGURE_ARGS+=	--with-cli6-pid-file=${DHCP_PID}/isc-dhclient6.pid
CONFIGURE_ARGS+=	--with-relay6-pid-file=${DHCP_PID}/isc-dhcrelay6.pid

.if !empty(USE_CROSS_COMPILE:M[yY][eE][sS])
CONFIGURE_ENV+=		BUILD_CC=${NATIVE_CC:Q}
# Target will have /dev/random.  For whatever reason this package
# requires you to specify the random device to use, and for native
# compilation it uses /dev/random, so we'll match that here even though
# it is almost certainly the case that it should be using /dev/urandom.
CONFIGURE_ENV.NetBSD+=	ac_cv_file__dev_random=yes
CONFIGURE_ARGS.NetBSD+=	--with-randomdev=/dev/random
.endif

CPPFLAGS.SunOS+=	-D_XOPEN_SOURCE=600 -D__EXTENSIONS__

SUBST_CLASSES+=		config
SUBST_STAGE.config=	pre-configure
SUBST_FILES.config=	includes/dhcpd.h
SUBST_VARS.config=	PREFIX PKG_SYSCONFDIR
SUBST_MESSAGE.config=	Fixing configuration files.

BUILD_DIRS=	${BUILD_SUBDIR}
INSTALL_DIRS=	${SUBDIR}

# XXX This crap should replaced by a dependency on net/libbind, but
# that seems to be a different version of libbind.
post-extract:
	cd ${WRKSRC}/bind && ${TAR} -zxf bind.tar.gz

BIND_CONFIGURE_ARGS+=	--disable-kqueue
BIND_CONFIGURE_ARGS+=	--disable-epoll
BIND_CONFIGURE_ARGS+=	--disable-devpoll
BIND_CONFIGURE_ARGS+=	--without-openssl
BIND_CONFIGURE_ARGS+=	--without-libxml2
BIND_CONFIGURE_ARGS+=	--enable-exportlib
BIND_CONFIGURE_ARGS+=	--enable-threads=no
BIND_CONFIGURE_ARGS+=	--with-export-includedir=${WRKSRC}/bind/include
BIND_CONFIGURE_ARGS+=	--with-export-libdir=${WRKSRC}/bind/lib
BIND_CONFIGURE_ARGS+=	--with-gssapi=no
BIND_CONFIGURE_ARGS+=	--with-python=no

BIND_WRKSRC=		${WRKSRC}/bind/bind-9.11.14

post-configure:
	${RUN}${_ULIMIT_CMD}					\
	cd ${BIND_WRKSRC} &&					\
	${PKGSRC_SETENV} ${_CONFIGURE_SCRIPT_ENV}		\
		${CONFIG_SHELL} ${CONFIG_SHELL_FLAGS}		\
			${CONFIGURE_SCRIPT}			\
				${CONFIGURE_ARGS}		\
				${BIND_CONFIGURE_ARGS}

.include "../../devel/zlib/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"